小编Ste*_*ieD的帖子

MacOS:如何使用 Raku 避免 intel mac 上的 ssl 地狱?

今天尝试安装https://github.com/finanalyst/raku-pod-render时遇到了重大问题。

最大的问题之一是使用 ssl 加密的测试失败。看:

https://github.com/grondilu/libdigest-raku/issues/25

https://github.com/jnthn/p6-io-socket-async-ssl/issues/69

然后是我在三月份提交的这个旧问题: https ://github.com/jnthn/p6-ssh-libssh/issues/18

到目前为止,这是三个不同的模块,我在 Mac 上安装时遇到了麻烦。我的机器上安装了 openssl@1.1 和 openssl@3 brew 软件包。

其他 mac 用户对如何彻底解决这个问题有什么建议吗?

macos ssl openssl raku

5
推荐指数
1
解决办法
156
查看次数

XPath:在任意数量的嵌套元素中匹配文本的方法?

在这种情况下,一个 XPath 表达式是否可以<a>使用元素中的文本匹配所有以下元素"Link"

例子:

  1. <a href="blah">Link</a>
  2. <a href="blah"><span>Link</span></a>
  3. <a href="blah"><div>Link</div></a>
  4. <a href="blah"><div><span>Link</span></div></a>

html xml xpath

4
推荐指数
1
解决办法
2163
查看次数

在Moose中创建Web :: Scraper对象作为类属性

我试图模仿这里找到代码,具体来说,这个属性:

# web-scraper object
has 'worker' => (
    is      => 'ro',
    isa     => 'Web::Scraper',
    default => sub {
        scraper(sub { });
    }
);
Run Code Online (Sandbox Code Playgroud)

但是当我在我的类中放入相同的代码时,我收到以下错误:

Not a HASH reference at accessor MyModule::scraper
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

has 'scraper' => (is => 'rw', isa => 'Web::Scraper',  default => sub { scraper( sub { } ); });
Run Code Online (Sandbox Code Playgroud)

以下是穆斯的错误:

# There were 1 warning(s)
#   Previous test 0 ''
#   You are overwriting a locally defined function (scraper) with an accessor at /usr/lib/x86_64-linux-gnu/perl5/5.20/Moose/Meta/Attribute.pm …
Run Code Online (Sandbox Code Playgroud)

perl moose

4
推荐指数
1
解决办法
72
查看次数

当最后一个字符是终止符时,解决分割函数的问题

我有20个字段的这一行数据:

my $data = '54243|601|0|||0|N|0|0|0|0|0||||||99582|';
Run Code Online (Sandbox Code Playgroud)

我用这个来分割数据:

my @data = split ('\|'), $data;
Run Code Online (Sandbox Code Playgroud)

但是,不是20个数据,而是只有19个:

print scalar @data;
Run Code Online (Sandbox Code Playgroud)

如果最后一个角色是a,我可以手动push一个空字符串,但我想知道是否有更多的perlish方式.@data|

perl split

4
推荐指数
1
解决办法
71
查看次数

使用mysql brew install在Mac Sierra上安装perl DBD :: mysql失败

试图DBD::mysql在运行mysql v 5.7.17的Mac Sierra计算机上安装.尝试安装时出现以下错误cpanm install DBD::mysql:

Checking if libs are available for compiling... Can't link/include C library 'ssl', 'crypto', aborting.

到目前为止我发现的其他解决方案并没有解决Sierra的问题.

perl cpanm macos-sierra dbd-mysql

4
推荐指数
1
解决办法
1575
查看次数

防止“mux_client_request_session: read from master failed: Broken pipe” ssh 错误的最佳方法

我有一个 perl 脚本,它创建一个 ssh 隧道并在它上面建立一个 Perl DBI 连接来查询远程主机上的数据库:

1 my $ssh = Net::OpenSSH->new('me@host.com');
2 $pid = $ssh->spawn({ssh_opts => '-L 127.0.0.1:12345:127.0.0.1:3306'}, 'sleep 3');

3 return DBI->connect($dsn, $db_user, $db_pass);
Run Code Online (Sandbox Code Playgroud)

这大约在 80% 到 90% 的时间内有效,但其余时间在尝试连接到数据库时出现此错误:

mux_client_request_session:从主服务器读取失败:管道损坏

在解决这个问题的过程中,我注意到如果我在第 2 行之后用usleep (10000)很短的时间让程序休眠,它 100% 的时间都可以工作。我不确定这是为什么,但我很好奇知道以及如何正确解决问题。

谢谢。

perl ssh-tunnel

4
推荐指数
1
解决办法
8486
查看次数

在 mac catalina 上启用 opcache,使用自制程序安装 php 7.4

我修改了 php.ini 文件以启用操作码缓存并重新启动 apache,但 phpinfo() 却看不到它。php -v 说:

PHP 7.4.1 (cli) (built: Dec 18 2019 14:46:18) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
Run Code Online (Sandbox Code Playgroud)

我从这个命令中看到的大多数其他示例都说“使用 Zend Opcache”。

根据 php 的说法,除了 at 的文件之外/usr/local/etc/php/7.4/php.ini,没有其他 .ini 文件被使用。

我尝试使用 pecl 安装 zend opcache,但这表示它适用于版本 5.2.0 至 5.5.0。

通过google搜索了30分钟。但没有取得任何进展。

opcache macos-catalina php-7.4

4
推荐指数
1
解决办法
3664
查看次数

使用语法在没有前瞻的情况下解析字符串?

得到这样的文字:

Want this || Not this

该行也可能如下所示:

Want this | Not this

用一根管子。

我使用这个语法来解析它:

    grammar HC {
       token TOP {  <pre> <divider> <post> }
       token pre { \N*? <?before <divider>> }
       token divider { <[|]> ** 1..2 } 
       token post { \N* }
    } 

Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?我很乐意能够做更多这样的事情:

    grammar HC {
       token TOP {  <pre> <divider> <post> }
       token pre { \N*? }
       token divider { <[|]> ** 1..2 }
       token post { \N* }
    } 

Run Code Online (Sandbox Code Playgroud)

但这是行不通的。如果我这样做:

    grammar HC {
       token TOP { …
Run Code Online (Sandbox Code Playgroud)

grammar raku

4
推荐指数
1
解决办法
146
查看次数

从简单数组递归构建嵌套哈希

收到:

my @list = <one two three>;

my %hash;
my $item1 = @list.shift;
%hash{$item1} = {$item1 => 1};

my $item2 = @list.shift;
%hash{$item1} = {$item2 => 1};

my $item3 = @list.shift;
%hash{$item1}{$item2} = {$item3 => 1};

say %hash;
Run Code Online (Sandbox Code Playgroud)

输出所需的数据结构:

{one => {two => {three => 1}}}
Run Code Online (Sandbox Code Playgroud)

显然,如果是递归的话会更好,所以我这样写:

sub get-hash(%parent-hash, $last-item, *@list) {
    my $item = @list.shift;
    %parent-hash{$last-item} = { $item => 1 };
    get-hash(%parent-hash{$last-item}, $item, @list) if @list;

    return %parent-hash<root>;
}

%hash = get-hash({}, 'root', @list2);

Run Code Online (Sandbox Code Playgroud)

输出:

{one => {two …
Run Code Online (Sandbox Code Playgroud)

raku

4
推荐指数
1
解决办法
154
查看次数

如何让“run”命令在 Windows 11 上运行?

我想尝试在 Windows 上测试 Raku 代码。我设法在 VirtualBox 上设置 Windows 11,并安装 Raku 二进制文件,并且可以执行脚本。

run但是,我似乎无法在不返回错误的情况下获得最简单的命令来执行任何操作:

run('ls');

结果是:

The spawned command 'ls' exited unsuccessfully (exit code: 1, signal: 0)
  in block <unit> at .\test.txt line 5
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用dir命令,但遇到了同样的问题。

windows raku

4
推荐指数
1
解决办法
167
查看次数