2011-12-15 8 views
3

これは初心者の質問ですが、私はかなり新しいperlです。Perlサブルーチンは空の値を返します

私の知る限りperlの理解として、私はこれを行うことができます。

sub BuildAndroidRessourceArgument() 
{ 
    my @xmlResFiles = @_; 
    my $fileCnt = @_; 
    my $index = 0; 
    my $aaptResArg = "-F "; 

    foreach(@xmlResFiles) 
    { 
     $index = $index + 1; 
     if($index == $fileCnt) 
     { 
      $aaptResArg = $aaptResArg.$_; 
     } 
     else 
     { 
      $aaptResArg = $aaptResArg.$_." -F "; 
     } 

    } 
    print "$aaptResArg\n"; 
    return($apptResArg); 
} 

私はここで私のaaptResArgを印刷するとき、私は、正しい値を持っていますが、:

my ($aaptResArg) = BuildAndroidRessourceArgument(@xmlResFiles); 
print "$aaptResArg\n"; 

私が戻った後に印刷する場合値は何も印刷しません。

このコードは機能するはずですが、関数内で印刷すると、値を返すときに印刷しない理由がありません。

+2

[?なぜ厳しいと警告を使用](http://stackoverflow.com/questions/8023959/why-use-strict-and-警告) – TLP

+1

"use strict;"すべてのPerlプログラムのトップに! – tadmc

+2

'use strict;厳しいを使用してください。厳しいを使用してください。厳しいを使用してください。厳格な;を使用フライングスパゲッティモンスターの愛のために、 '厳格な使用;' – friedo

答えて

5

あなたはスペルが間違っています。それを作る:

return($aaptResArg); 
12

あなたは$apptResArgとして変数$aaptResArgつづりの間違っています。これはstrictプラグマを使用した場合に捕捉されます。

常にすることを忘れないでください:

use strict; 
use warnings; 

Larry Wallを引用:

私はそれは奇妙だが、厳格なVARSはすでに対処できる方に群衆を分割 に非常に、非常に接近してを知っている地元のレキシカルと の人はできません。
- でLarry Wall氏< 199710050130.SAA047​​[email protected]>

関連する問題