2016-02-12 52 views
4

所以我一直試圖讓電子與Perl6工作,看起來像我的黑客的東西,讓他們工作的所有努力後,它只是不希望做的事情。我用下面的腳本(從上混帳電子回購的例子之一):動態變量@ *沒有發現INC

#!/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

+0

如果您在6.c之前使用過Perl 6,您可能需要從乾淨的版本開始。 '@ * INC'在此之前被刪除,任何提及它都必須處理。 –

+0

好吧,所以模塊可能需要更新,然後是?考慮到在模塊中使用'@ * INC',我會認爲是這種情況。你能給我任何指導如何處理它?喜歡有沒有使用別的方法或使它可以被「發現」?就像我認爲的一個快速解決方案。 – Phyreprooph

+0

我建議你在https://github.com/azawawi/perl6-electron/issues上提出問題並訪問freenode IRC頻道#perl6並詢問 – raiph

回答

2

$ * REPO是6.C替代@INC在Perl 5

在Perl 5 @INC變量是要被搜索的路徑的全局數組時Perl是尋找模塊(類似於PATH變量當操作系統正在尋找程序時,被許多操作系統用來包含要搜索的路徑)。

直到最近Perl 6還有一個相應的@*INC變量。

具有用於此的數組被證明是不適合給定的並行模塊裝載和由Perl 6的模塊儲存庫機構引進了先進的模塊選擇特徵6.C。

大約一個月或兩個月之前6.c領導dev(Stefan Seifert又名九)切換模塊加載使用鏈式回購方式,通過一個新的$*REPO標量和廢棄的include數組。

由於各種原因,他們這樣做沒有貶低期。

任何預6.C模塊直接提到@*INC需要更新一些尚未得到該更新。電子模塊就是這樣 - 直到您提出問題(謝謝!),模塊的作者回復了fixing it

我不知道的$*REPO任何「官方」的設計或最終用戶文檔的呢。最好的方式可能是通過詢問用戶和/或在Freenode的IRC頻道#perl6工具鏈(; joinlogs)閱讀他們的意見被發現。