2016-05-03 35 views
5

是否有可能編寫模塊的方式是,當模塊爲used時沒有顯式導入所有子例程被導入,當它是used時顯式導入只有這些顯式的導入子例程可用?Perl6:隱式和顯式導入

#!/usr/bin/env perl6 
use v6; 
use Bar::Foo; 

# all subroutines are imported 
sub-one(); 
sub-two(); 
sub-three(); 

#!/usr/bin/env perl6 
use v6; 
use Bar::Foo :sub-one, :sub-two; 

sub-one(); 
sub-two(); 
# sub-three not imported 
+0

您是否(@sid_com)理解我的排隊編輯到您的問題(s/export/import /),如我在下面的回答(導出≠導入)中所述?你同意嗎? – raiph

+0

@raiph:對我來說,你的編輯聽起來很好(喜歡的尺寸有點刺激)。 「出口」我首先感到不舒服,但仍然使用它。 –

回答

8

給你的潛艇兩個特殊的標籤:DEFAULT以及導出時專用的一個,例如

unit module Bar; 
sub one is export(:DEFAULT, :one) { say "one" } 
sub two is export(:DEFAULT, :two) { say "two" } 

現在,你可以用一個簡單的導入所有的人,或者可以通過use Bar :one選擇特定的;