raku相关内容
我已经阅读了规范,但我仍然对 my class 与 [our] class 有何不同感到困惑.有何区别以及何时使用? 解决方案 与变量一样,my 在词法上绑定一个名称,而 our 在周围创建一个条目包. 模块 M {我们的类 Foo {}class Bar {} # 同上,真的我的班级 Baz {}}说 M::Foo;# 好的说 M::Bar;#还可以说 M::Baz;#砰! 将 my
..
此示例取自 roast>,虽然它已经存在 8 年了: role doc { has $.doc is rw }multi trait_mod:(变量 $a, :$docced!) {$a 做 doc.new(doc => $docced);}我的 $dog 是 docced('barks');说 $dog.VAR; 这将返回 Any,没有混合任何类型的角色.显然没有办法进入“文档"部分
..
我正在尝试导入我非常喜欢的 Perl5 模块 https://metacpan.org/pod/数据::打印机使用手册页中的建议 https://modules.perl6.org/dist/Inline::Perl5:cpan:NINE 使用一个非常简单的脚本 使用内联::Perl5;我的 $p5 = Inline::Perl5.new;$p5.use('数据::打印机'); 但后来我
..
我正在尝试使用 Excel::Writer::XLSX 在 Perl6 中编写 Excel 笔记本. 我通过 use Excel::Writer::XLSX:from 使用 Inline::Perl5 具体来说,我想像在 Perl5 中那样写一行: $worksheet ->write_row(0,0, \@line); 但这会导致错误 要将数组、散列或子传递给
..
我想过滤以 @search 元素开头的 @array 元素: my @array = "aaaaa" .. "fffff";我的@search = "aaaa" .. "cccc";.put for @array .grep:/^ @search/; 问题是需要 19 秒.所以,我'预编译'grep 的regex,和整个程序如下所示: my @array = "aaaaa" .. "ffff
..
我想用Raku Modules来分组一些我经常使用的功能.因为这些函数都是松散耦合的,所以我不喜欢把它们添加到一个类中. 我喜欢use的想法,你可以在那里选择,应该导入哪些函数,但我不喜欢它,导入的函数然后存储在全局命名空间中. 例如,如果我有一个文件 my_util.pm6: #my_util.pm6 的内容单元模块 my_util;我们的子greet($who) 是export(
..
我想做这样的事情: die "致命错误:应用程序版本 $MY-APPLICATION-VERSION" 由于 Perl6 模块不能假设它打包的文件的相对位置(例如安装的模块都放在一个平面目录结构中)我不能只做 $?FILE.IO.add("../META6.json").slurp.有没有办法在可能已安装或可能未安装的 Perl6 应用程序/模块中获取 META6.json 中声明的版本?
..
也许我遗漏了一些东西,但我想知道这段代码是否有充分的理由编译 角色 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 吗?
..
我正在尝试通过使用 CompUnit 类集进行预编译来创建 POD6 的缓存. 我可以按如下方式创建、存储和检索 pod: 使用v6.c;使用 nqp;my $precomp-store = CompUnit::PrecompilationStore::File.new(prefix=>'cache'.IO);我的 $precomp = CompUnit::PrecompilationRe
..
我正在尝试在 Perl 6 中声明以下 C 结构: struct myStruct{整数 A[2];//
..
此线程中给出的代码不再起作用:我怎样才能在 Perl 6 中为一个对象加注? 我去年写了这段代码,然后就成功了.现在没有了: class Person { ;}类女人是人{;}我的 $tom = Person.new;我的 $lisa = Woman.new;说 $tom.^name;# ->人说 $lisa.^name;# ->女士元模型::Primitives.rebless($tom
..
我正在尝试读取下载的 html 文件 my $file = "sn.html";我的 $in_fh = 打开 $file, :r;我的 $text = $in_fh.slurp; 然后我收到以下错误消息: 格式错误的 UTF-8在块中在 prog.p6 第 10 行 如何避免这种情况并访问文件内容? 解决方案 如果在打开文件时没有指定编码,它将采用 utf8.显然,您要打开的文件包
..
我想要一个无论是否存在空格都宽松的语法......我想匹配: this ' '还有这个 '' 这有效: token TOP { \s* ;\s* \s* \s* } 但是在阅读了关于 :sigspace、 和 rule 的所有内容后,我可以想象有一种方法可以做到这一点没有重复的 *\s .(即.如何匹配 per6 中的十六进制数组语法)
..
我在玩 shell 以及当我更改调用程序中的标准文件句柄时它的行为.Proc 说: $in、$out 和 $err 是待启动程序的三个标准流,默认为“-",表示继承父进程的流. 据我所知,外部程序不使用相同的文件句柄: #!/Applications/Rakudo/bin/perl6#`(使外部 Perl 6 编程输出到标准句柄)我的 $p6-name = 'in-out.p6'.I
..
如标题所示,$/ 和 $¢ 有什么区别?它们似乎总是具有相同的值: my $text = "Hello world";$text ~~/(\w+) { 说 $/.raku } (\w+)/;$text ~~/(\w+) { 说 $¢.raku } (\w+)/; 两者都会导致具有相同值的匹配对象.使用一个而不是另一个的逻辑是什么? 解决方案 变量 $/ 指的是最近的匹配,而变量 $¢
..
以下 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 案例). 系统
..
我正在阅读一个寻找不同结构的电子表格.当我使用 Moose 尝试以下操作时,它似乎可以满足我的要求.我可以创建不同类型的对象,将其分配给找到的成员并转储 Cell 实例以供审查. 封装 Cell{使用驼鹿;使用 Moose::Util::TypeConstraints;使用命名空间::自动清理;有 'str_val' =>( is => 'ro', isa => 'Str', required
..
正则表达式中 Perl 6 最长交替的文档指向概要 5,以记录 最长令牌匹配.如果不同的替代方案匹配相同长度的子字符串,则存在三个规则: 最长的声明性前缀打破了平局 最高特异性打破平局 “如果仍然是平局,请使用额外的决胜局." 最左边的交替最终获胜 这是我很好奇的第三条规则. 解决方案 首先,文本的组织方式表明实现的行为必须是确定性的(而不是随机的). 第二个——也
..
我从 第 10 天 - Feed 操作员中获取了这个示例Perl 6 2010 Advent Calendar 中的 .uc 略有更改,.ucfirst 不再存在: 我的@rakudo-people = ;@乐堂人==>grep {/at/} ==>地图 { .uc } ==>我的@who-it's-at;说~@who-it's-at; 我用一些额外的空格来写它: 我的@rakudo-peo
..
我想运行多个 shell 进程,但是当我尝试运行超过 63 个时,它们挂起.当我将线程池中的 max_threads 减少到 n 时,它在运行 nth shell 命令后挂起. 正如您在下面的代码中看到的,问题不在于 start 块本身,而在于包含 shellstart 块> 命令: #!/bin/env perl6我的 $*SCHEDULER = ThreadPoolScheduler.
..