Perl子例程返回一个空值

The*_*777 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 );
}
Run Code Online (Sandbox Code Playgroud)

当我在这里打印我的aaptResArg时,我有正确的值但是然后:

my ( $aaptResArg ) = BuildAndroidRessourceArgument( @xmlResFiles );
print "$aaptResArg\n";
Run Code Online (Sandbox Code Playgroud)

当我在返回值后打印时,它什么都不打印.

所以据我所知这段代码应该有效,如果它在函数中打印,它们没有理由在返回值时不应该打印它?

Ala*_*avi 12

你已经拼错变量$aaptResArg作为$apptResArg.如果你使用了strictpragma,这将被捕获.

记住永远:

use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)

引用Larry Wall的:

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


Jon*_*n M 5

你错了拼写.做了:

return($aaptResArg);
Run Code Online (Sandbox Code Playgroud)