2016-12-08 3 views
0

私はPerlでハッシュを扱おうとしています。私は、次の例ているハッシュからアイテムを取得できませんgetグローバルシンボルに明示的なパッケージ名が必要です

my %ERROR_CODE_101 = ("id" => 101,"desc" => "blablabla"); 

sub checkError 
{ 
    # some switch-case 
    #.... 
    return %ERROR_CODE_101;  
} 

sub runCommand 
{   
    my $code = checkError(); 
    if($code{id} > 0) # error happens here line 216 
    { 
     #... 
    } 
} 

エラー:

Global symbol "%code" requires explicit package name at build_ios.pl line 216.

答えて

4

my $code = checkError();スカラー$codeに戻り値を割り当てます。

$code{id}%codeハッシュからスカラーid値を読み取ろうとします...しかし、あなたは、スカラーではなく、ハッシュを持っています。

あなたが最初の場所でのハッシュに戻り値を代入する必要があります。

my %code = checkError(); 
関連する問題