Perl子例程返回一个空值

时间:2011-12-15 15:06:34

标签: 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 个答案:

答案 0 :(得分:12)

您已将变量$aaptResArg拼错为$apptResArg。如果你使用了strict pragma,那就会被抓住。

记住永远:

use strict;
use warnings;

引用Larry Wall

  

知道这很奇怪,但严格的变量已经非常非常接近   将人群划分为可以处理本地词汇和人的人   那些不能的人                 - Larry Wall in< 199710050130.SAA047​​62@wall.org>

答案 1 :(得分:5)

你错了拼写。成功:

return($aaptResArg);