我对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";
当我在返回值后打印时,它什么都不打印。
据我所知,这段代码应该可以正常工作,如果它在函数中打印,它们没有理由在返回值时不能打印它?
答案 0 :(得分:12)
您已将变量$aaptResArg
拼错为$apptResArg
。如果你使用了strict
pragma,那就会被抓住。
记住永远:
use strict;
use warnings;
引用Larry Wall:
我知道这很奇怪,但严格的变量已经非常非常接近 将人群划分为可以处理本地词汇和人的人 那些不能的人 - Larry Wall in< 199710050130.SAA04762@wall.org>
答案 1 :(得分:5)
return($aaptResArg);