【发布时间】:2016-02-12 00:55:12
【问题描述】:
所以我一直在尝试让 Electron 与 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");
运行时出现此错误:
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
查看子方法后,我注意到这是 perl6 的电子模块的一部分,它似乎不喜欢在模块中使用 @*INC。
有没有人成功地将电子模块与 Perl6 一起使用?有没有其他人遇到过这个错误?有没有简单的方法?
我可能可以修改模块以使其编译和运行,但我不知道从哪里开始替换 @*INC。
【问题讨论】:
-
如果您在 6.c 之前使用过 Perl 6,您可能需要从头开始。
@*INC在此之前已被删除,任何提及它都必须处理。 -
好的,那么模块可能需要更新,是吗?鉴于
@*INC正在模块中使用,我会假设是这种情况。你能给我一些关于如何处理它的指示吗?就像有没有一种方法可以使用其他东西或制作它以便“找到”它?就像我猜的快速修复一样。 -
我建议您在github.com/azawawi/perl6-electron/issues 提出问题并访问freenode IRC 频道#perl6 并询问
-
@*INC 的替换是 $*REPO。但我对这两个功能的了解都不够,不知道如何修复电子代码。
-
它需要更多的工作,它还需要使用新的
whenever语法,而不是常规的loop。 (这只是我发现我认为需要更改的第一件事)Perl 6 实际上在上次修改后的几个月里发生了相当大的变化。