所以我一直在努力让电子与Perl6一起工作,看起来就像我所有的黑客攻击工作让它们发挥作用,它只是不想做它的事情.我使用了以下脚本(git上的电子仓库中的一个示例):
#!/usr/bin/env perl6
use v6;
use Electron;
my $app = Electron::App.instance;
LEAVE {
$app.destroy if $app.defined;
}
say Electron::Dialog.show-open-dialog.perl;
say Electron::Dialog.show-save-dialog.perl;
say Electron::Dialog.show-message-box.perl;
Electron::Dialog.show-error-box("Text", "Content");
prompt("Press any key to exit");
Run Code Online (Sandbox Code Playgroud)
在运行时我收到此错误:
Dynamic variable @*INC not found
in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 54
in method instance at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
Actually thrown at:
in method throw at C:\rakudo/share/perl6/runtime/CORE.setting.moarvm line 1
in block at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 55
in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 48
in method instance at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
Run Code Online (Sandbox Code Playgroud)
在看了子方法之后,我注意到这是perl6的电子模块的一部分,它似乎不喜欢@*INC模块中的使用.
有没有人成功地使用Perl6的电子模块?有没有其他人遇到过这个错误?有一个简单的方法吗?
我可以修改模块以使其编译和运行,但我不知道从哪里开始替换@*INC.
在Perl 5中,@INC变量是Perl查找模块时要搜索的全局路径数组(类似于许多操作系统使用的PATH变量,用于包含当操作系统查找程序时要搜索的路径).
直到最近,Perl 6才有了相应的@*INC变量.
由于Perl 6模块存储库机制引入了并发模块加载和高级模块选择功能,因此有一个数组对于6.c不合适.
大约一个月或两个月之前,6.ca领导开发(Stefan Seifert又名9)切换模块加载,通过新$*REPO标量使用链式回购方法,并废弃包含数组.
出于各种原因,他们在没有弃用期的情况下这样做了.
直接提到的任何pre 6.c模块都@*INC需要更新,有些还没有得到更新.Electron模块就是其中之一 - 直到你提出了一个问题(谢谢!)并且该模块的作者通过修复它做出了回应.
我不知道任何"官方"设计或最终用户文档$*REPO.最好的信息可能是通过在freenode IRC频道#perl6-toolchain(logs ; join)上询问用户9来找到.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |