2012-01-20 12 views
1

私は三つの機能定義されている中で、私自身のモジュール、書いてい関数の出力の順序:方法::署名、モジュール

package YUCO::Test; 

use 5.008008; 
use strict; 
use warnings; 

require Exporter; 
use AutoLoader qw(AUTOLOAD); 
use Method::Signatures; 

our @ISA = qw(Exporter); 
our %EXPORT_TAGS = ('all' => [ qw() ]); 
our @EXPORT_OK = (@{ $EXPORT_TAGS{'all'} }); 
our @EXPORT = qw(Test1 Test2 Test3); 
our $VERSION = '0.01'; 

#----------------------------------------------------- 
func Test1(Str $a='') 
{ 
     print ' ok from Test1, and a is : '.$a."\n"; 
} 

#----------------------------------------------------- 
func Test2(Str $a='') 
{ 
     print ' ok from Test2, and a is : '.$a."\n"; 
} 

#----------------------------------------------------- 
func Test3(Str $a='') 
{ 
     print ' ok from Test3, and a is : '.$a."\n"; 
} 

#----------------------------------------------------- 

1; 
__END__ 

とは、私はこれらの行でテストプログラムを実行するとき:

#!/usr/bin/perl -w 

use strict; 
use warnings; 

use YUCO::Test qw(Test1 Test2 Test3); 

Test1('a ar'); 
Test2('b lo'); 
Test3('..c..'); 

Test1(); 
Test2(); 
Test3(); 

それはいくつかの奇妙な/ランダム出力配列を有しており、これらのような出力があります。

ok from Test2, and a is : b lo 
ok from Test3, and a is : ..c.. 
ok from Test2, and a is : 
ok from Test3, and a is : 
ok from Test1, and a is : a ar 
ok from Test1, and a is : 

しかし、私はスクリプトを実行するたびに、このような正確なシーケンスを持つという意味では正確にランダムではありません。

答えて

2

あなたは、コードマングラーは、次の操作を実行して、あなたの最愛のマングリングされたかをチェックすることをお勧めします:

use Data::Dumper qw<Dumper>; 

$Data::Dumper::Deparse = 1; 

say Dumper(\&YUCO::Test::Test1); 

おそらくそれはあなたの手掛かりを与えるかもしれません。