2011-12-15 102 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 2011-12-15 15:22:39

回答

5

你拼错了。让它:

return($aaptResArg); 
12

你拼错变量$aaptResArg作为$apptResArg。如果您使用了strict编译指示,这将会被捕获。

记住,总是:

use strict; 
use warnings; 

报价Larry Wall

知道它的怪异,但严格瓦尔已经自带非常,非常接近 划分人群为那些谁可以处理与当地的词汇和 谁不能。
拉里 - 沃尔在< 199710050130.SAA047​​[email protected]>