2013-02-27 1 views
3

에 종료 한 Statment 작동하지 않습니다, 나는이이 오류를 표시하지 않고 주는 실행할 때시도 :: 작은 내가 CPAN에서 <a href="http://search.cpan.org/~doy/Try-Tiny-0.12/lib/Try/Tiny.pm" rel="nofollow">Try::Tiny</a> 패키지를 사용하려고했다 펄

use strict; 
use Try::Tiny; 
print "before try block"; 
try { 
     print "try block"; 
     my $test = 10/0; 
} catch { 
     print "got error :- $_ \n"; 
} 
exit; 

아래와 같은 간단한 코드를 작성했습니다 o/p는 "before try block"과 같으며 "try block"문을 출력하지 않고 끝납니다. 내가 잘 작동하고 catch 블록에서 인쇄 문을 보여줍니다

#exit; 

을 언급 할 때

하지만, 내가 뭔가 잘못하고있는 중이 야? 무엇이 잘못되었는지 찾으려고합니다.

+0

['exit'] (http://perldoc.perl.org/functions/exit.html "perldoc -f exit")를 직접 호출 할 이유는 거의 없습니다. –

+0

@ 브래드 나는 try를 구현하고 스크립트에서 catch하여 나머지 코드에 주석을 달아서 exit를 사용했습니다. – Ganesh

+0

질문에 문제가 해결되어서는 안됩니다. 지금은 당신이 요구하는 문제를 보여주지 않습니다. –

답변

5

나는 당신이, 게다가

cpan에 자신의 예에서

} catch { 
     print "got error :- $_ \n"; 
}; 

은 try-캐치의 끝에서 ; (세미콜론)가 필요 당신이 exit을 필요로 할 생각?

(의례 ysth)
설명 : 캐치는 두 개의 매개 변수를 취 코드 블록, 그리고 마지막으로 절 의도 선택적 매개 변수를 ...하지만 여기가 두 번째로 출구의 반환 값을 전달되는 매개 변수는 출구가 결코 반환되지 않는 것을 제외하고는 불평 할 것입니다.

+0

고마워 내 실수 였어. – Ganesh

+0

@Ganesh np는 심지어 cpan이 명시 적으로 지정하지 않았지만 단지 추측이었습니다. –

+7

설명 : catch는 두 개의 매개 변수를 취합니다 : 코드 블록과 finally 절이 될 수있는 선택적 매개 변수 ... 그러나 여기에는 두 번째 매개 변수로 exit의 반환 값이 전달됩니다.이 예외는 exit를 제외하고 불평 할 것입니다. 보고. – ysth