找不到动态变量@*INC
Dynamic variable @*INC not found
所以我一直在尝试让 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\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 54
in method instance at C:\rakudo\share\perl6\site\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA 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\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 55
in submethod initialize at C:\rakudo\share\perl6\site\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 48
in method instance at C:\rakudo\share\perl6\site\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
在查看子方法后,我注意到这是 perl6 电子模块的一部分,它似乎不喜欢在模块中使用 @*INC
。
有没有人成功地使用 Perl6 的 electron 模块?还有其他人遇到过这个错误吗?有没有简单的解决方法?
我可能可以修改模块以使其编译 运行 但我不知道从哪里开始替换 @*INC
。
$*REPO 是 Perl 5 中 @INC 的 6.c 替代品
在 Perl 5 中,@INC
变量是 Perl 查找模块时要搜索的全局路径数组(类似于许多 OSes 使用的 PATH 变量,用于包含要访问的路径当 OS 正在寻找程序时被搜索)。
直到最近 Perl 6 才有相应的 @*INC
变量。
鉴于 Perl 6 模块存储库机制引入的并发模块加载和高级模块选择功能,事实证明为此设置一个数组不适合 6.c。
大约在 6.c 前一两个月,首席开发人员(Stefan Seifert 又名九)将模块加载切换为通过新的 $*REPO
标量使用链式回购方法并废弃了包含数组。
出于各种原因,他们在没有弃用期的情况下这样做。
任何直接提到 @*INC
的 6.c 之前的模块都需要更新,有些还没有得到更新。 Electron 模块就是这样一个——直到您提出问题(谢谢!)并且模块的作者通过 fixing it.
回复
我不知道 $*REPO
有任何“官方”设计或最终用户文档。在 freenode IRC 频道#perl6-toolchain (logs; join).
上询问用户 nine 可能会找到最好的信息。
所以我一直在尝试让 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\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 54
in method instance at C:\rakudo\share\perl6\site\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA 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\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 55
in submethod initialize at C:\rakudo\share\perl6\site\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 48
in method instance at C:\rakudo\share\perl6\site\sourcesD84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
在查看子方法后,我注意到这是 perl6 电子模块的一部分,它似乎不喜欢在模块中使用 @*INC
。
有没有人成功地使用 Perl6 的 electron 模块?还有其他人遇到过这个错误吗?有没有简单的解决方法?
我可能可以修改模块以使其编译 运行 但我不知道从哪里开始替换 @*INC
。
$*REPO 是 Perl 5 中 @INC 的 6.c 替代品
在 Perl 5 中,@INC
变量是 Perl 查找模块时要搜索的全局路径数组(类似于许多 OSes 使用的 PATH 变量,用于包含要访问的路径当 OS 正在寻找程序时被搜索)。
直到最近 Perl 6 才有相应的 @*INC
变量。
鉴于 Perl 6 模块存储库机制引入的并发模块加载和高级模块选择功能,事实证明为此设置一个数组不适合 6.c。
大约在 6.c 前一两个月,首席开发人员(Stefan Seifert 又名九)将模块加载切换为通过新的 $*REPO
标量使用链式回购方法并废弃了包含数组。
出于各种原因,他们在没有弃用期的情况下这样做。
任何直接提到 @*INC
的 6.c 之前的模块都需要更新,有些还没有得到更新。 Electron 模块就是这样一个——直到您提出问题(谢谢!)并且模块的作者通过 fixing it.
我不知道 $*REPO
有任何“官方”设计或最终用户文档。在 freenode IRC 频道#perl6-toolchain (logs; join).