2011-12-15 4 views
3

초보자 용 질문 인 경우 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;"를 입력해야합니다. 모든 펄 프로그램의 맨 위에! – tadmc

+2

'use strict; 엄격한 사용; 엄격한 사용; 엄격한 사용; 엄격한 사용, '플라잉 스파게티 몬스터의 사랑을 위해,'엄격한 사용; – friedo

답변

5

철자가 잘못되었습니다. 그것을 확인 :

return($aaptResArg); 
12

당신은 $apptResArg 같은 변수 $aaptResArg의 철자가 틀리있다. 이것은 strictpragma를 사용했다면 잡힐 것입니다.

항상 기억

use strict; 
use warnings; 

Larry Wall을 인용 :

내가 이상한 알고 하지만 엄격한 바르 이미 거래를 할 수있는 사람으로 군중을 분할 에 매우 가까이 온다 현지 어휘와 사람들은 할 수 없습니다.
- 래리 벽 < [email protected]>

관련 문제