raku相关内容

我的班级和我们在 Raku(perl6) 中的班级有什么区别?

我已经阅读了规范,但我仍然对 my class 与 [our] class 有何不同感到困惑.有何区别以及何时使用? 解决方案 与变量一样,my 在词法上绑定一个名称,而 our 在周围创建一个条目包. 模块 M {我们的类 Foo {}class Bar {} # 同上,真的我的班级 Baz {}}说 M::Foo;# 好的说 M::Bar;#还可以说 M::Baz;#砰! 将 my ..
发布时间:2021-07-02 19:32:16 其他开发

特征中的混合角色显然不起作用

此示例取自 roast>,虽然它已经存在 8 年了: role doc { has $.doc is rw }multi trait_mod:(变量 $a, :$docced!) {$a 做 doc.new(doc => $docced);}我的 $dog 是 docced('barks');说 $dog.VAR; 这将返回 Any,没有混合任何类型的角色.显然没有办法进入“文档"部分 ..
发布时间:2021-07-02 19:32:13 其他开发

无法使用 Inline::Perl5 将 Perl5 模块导入 Perl6

我正在尝试导入我非常喜欢的 Perl5 模块 https://metacpan.org/pod/数据::打印机使用手册页中的建议 https://modules.perl6.org/dist/Inline::Perl5:cpan:NINE 使用一个非常简单的脚本 使用内联::Perl5;我的 $p5 = Inline::Perl5.new;$p5.use('数据::打印机'); 但后来我 ..
发布时间:2021-07-02 19:32:10 其他开发

Perl6:获取 Perl5 模块的数组引用

我正在尝试使用 Excel::Writer::XLSX 在 Perl6 中编写 Excel 笔记本. 我通过 use Excel::Writer::XLSX:from 使用 Inline::Perl5 具体来说,我想像在 Perl5 中那样写一行: $worksheet ->write_row(0,0, \@line); 但这会导致错误 要将数组、散列或子传递给 ..
发布时间:2021-07-02 19:32:07 其他开发

使用模块加载一组相关功能

我想用Raku Modules来分组一些我经常使用的功能.因为这些函数都是松散耦合的,所以我不喜欢把它们添加到一个类中. 我喜欢use的想法,你可以在那里选择,应该导入哪些函数,但我不喜欢它,导入的函数然后存储在全局命名空间中. 例如,如果我有一个文件 my_util.pm6: #my_util.pm6 的内容单元模块 my_util;我们的子greet($who) 是export( ..
发布时间:2021-07-02 19:32:01 其他开发

有没有办法从 Perl6 模块代码中的 META6.json 获取版本?

我想做这样的事情: die "致命错误:应用程序版本 $MY-APPLICATION-VERSION" 由于 Perl6 模块不能假设它打包的文件的相对位置(例如安装的模块都放在一个平面目录结构中)我不能只做 $?FILE.IO.add("../META6.json").slurp.有没有办法在可能已安装或可能未安装的 Perl6 应用程序/模块中获取 META6.json 中声明的版本? ..
发布时间:2021-07-02 19:31:58 其他开发

raku 角色中的签名限制

也许我遗漏了一些东西,但我想知道这段代码是否有充分的理由编译 角色 L {方法 do-l (Int, Int --> Int ) { ... }}A类做L{方法 do-l (Int $a, Real $b --> Str) {" .str ~":你期待 Int 吗?$a + $b}}我的 $a = A.new;说 $a.do-l: 2, 3.323 这将输出 5.323:你期待 Int 吗? ..
发布时间:2021-07-02 19:31:53 其他开发

如何使用 :since 与 CompUnit

我正在尝试通过使用 CompUnit 类集进行预编译来创建 POD6 的缓存. 我可以按如下方式创建、存储和检索 pod: 使用v6.c;使用 nqp;my $precomp-store = CompUnit::PrecompilationStore::File.new(prefix=>'cache'.IO);我的 $precomp = CompUnit::PrecompilationRe ..
发布时间:2021-07-02 19:31:50 其他开发

Raku rebless 不再适用于继承类

此线程中给出的代码不再起作用:我怎样才能在 Perl 6 中为一个对象加注? 我去年写了这段代码,然后就成功了.现在没有了: class Person { ;}类女人是人{;}我的 $tom = Person.new;我的 $lisa = Woman.new;说 $tom.^name;# ->人说 $lisa.^name;# ->女士元模型::Primitives.rebless($tom ..
发布时间:2021-07-02 19:31:44 其他开发

Perl 6 错误消息:块 <unit> 中格式错误的 UTF-8

我正在尝试读取下载的 html 文件 my $file = "sn.html";我的 $in_fh = 打开 $file, :r;我的 $text = $in_fh.slurp; 然后我收到以下错误消息: 格式错误的 UTF-8在块中在 prog.p6 第 10 行 如何避免这种情况并访问文件内容? 解决方案 如果在打开文件时没有指定编码,它将采用 utf8.显然,您要打开的文件包 ..
发布时间:2021-07-02 19:31:41 其他开发

在 perl6 语法中放松空格的最佳方法是什么?

我想要一个无论是否存在空格都宽松的语法......我想匹配: this ' '还有这个 '' 这有效: token TOP { \s* ;\s* \s* \s* } 但是在阅读了关于 :sigspace、 和 rule 的所有内容后,我可以想象有一种方法可以做到这一点没有重复的 *\s .(即.如何匹配 per6 中的十六进制数组语法) ..
发布时间:2021-07-02 19:31:38 其他开发

更改 Perl 6 的 $*OUT 是否会更改子进程的标准输出?

我在玩 shell 以及当我更改调用程序中的标准文件句柄时它的行为.Proc 说: $in、$out 和 $err 是待启动程序的三个标准流,默认为“-",表示继承父进程的流. 据我所知,外部程序不使用相同的文件句柄: #!/Applications/Rakudo/bin/perl6#`(使外部 Perl 6 编程输出到标准句柄)我的 $p6-name = 'in-out.p6'.I ..
发布时间:2021-07-02 19:31:35 其他开发

正则表达式中的 $/和 $¢ 有什么区别?

如标题所示,$/ 和 $¢ 有什么区别?它们似乎总是具有相同的值: my $text = "Hello world";$text ~~/(\w+) { 说 $/.raku } (\w+)/;$text ~~/(\w+) { 说 $¢.raku } (\w+)/; 两者都会导致具有相同值的匹配对象.使用一个而不是另一个的逻辑是什么? 解决方案 变量 $/ 指的是最近的匹配,而变量 $¢ ..
发布时间:2021-07-02 19:31:32 其他开发

终端 ANSI 颜色不适用于 Inline::Perl5 (Data::Printer)

以下 Perl 5 脚本: 使用严格;使用警告;使用数据::打印机;我的@a = (1,2,3,4);p@a; 给出输出: (注意蓝色),而这个 Perl 6 脚本: use Data::Printer:from;我的@a = 1,2,3,4;p@a; 给出输出: [[0] 1,[1] 2,[2] 3、[3] 4] 但数字没有着色(如上面的 Perl 5 案例). 系统 ..
发布时间:2021-07-02 19:31:29 其他开发

如何将类属性声明为类名的联合?

我正在阅读一个寻找不同结构的电子表格.当我使用 Moose 尝试以下操作时,它似乎可以满足我的要求.我可以创建不同类型的对象,将其分配给找到的成员并转储 Cell 实例以供审查. 封装 Cell{使用驼鹿;使用 Moose::Util::TypeConstraints;使用命名空间::自动清理;有 'str_val' =>( is => 'ro', isa => 'Str', required ..
发布时间:2021-07-02 19:31:26 其他开发

什么是“额外的决胜局"?Perl 6 最长的令牌匹配?

正则表达式中 Perl 6 最长交替的文档指向概要 5,以记录 最长令牌匹配.如果不同的替代方案匹配相同长度的子字符串,则存在三个规则: 最长的声明性前缀打破了平局 最高特异性打破平局 “如果仍然是平局,请使用额外的决胜局." 最左边的交替最终获胜 这是我很好奇的第三条规则. 解决方案 首先,文本的组织方式表明实现的行为必须是确定性的(而不是随机的). 第二个——也 ..
发布时间:2021-07-02 19:31:23 其他开发

为什么我的承诺(启动块)中的所有 shell 进程都没有运行?(这是一个错误吗?)

我想运行多个 shell 进程,但是当我尝试运行超过 63 个时,它们挂起.当我将线程池中的 max_threads 减少到 n 时,它在运行 nth shell 命令后挂起. 正如您在下面的代码中看到的,问题不在于 start 块本身,而在于包含 shellstart 块> 命令: #!/bin/env perl6我的 $*SCHEDULER = ThreadPoolScheduler. ..
发布时间:2021-07-02 19:31:17 其他开发