2009-09-16 2 views
11

모든 종류의 외부 명령과 실패 할 수있는 다양한 파일 시스템 명령을 실행하는 코드를 작성하고 있습니다.실패 할 수있는 것에`die or die '를 추가하지 못하게하는 펄 모듈이 있습니까?

실패 할 수있는 부분에 or die을 추가하는 번거 로움을 덜어주는 모듈이 있습니까?

내가 뭔가에 다음과 같은 포장 할 수 있도록하고 싶습니다 그래서 대신의 :

mkdir $dirname or die "can't create directory $dirname"; 

system("some external command") or die "can run some external command"; 

내가 얻을 :

some_wrapper_code { 
    mkdir $dirname; 

    system("some external command"); 
} 

같은 mkdir이 실패 할 경우는 말해거야 실패는 mkdir이고, system이 실패하면 장애가 system에 있음을 알 수 있습니다.

답변

32

옙. CPAN에서 autodie을 확인하십시오. 워드 프로세서

:

autodie 프라그는 일반적으로 실패에 예외를 발생 등가물과 실패에
거짓을 반환하는 함수를 대체 할 수있는 편리한 방법을 제공합니다.

autodieautodie 프라그는 로 변경 기능 및 서브 루틴 만 둘러싸 블록, 파일의 끝 부분까지의 행동을 변경하거나 eval 것을 의미 어휘 범위있다.

+11

Perl 5.10.1부터 autodie가 코어에 포함됩니다. http://perldoc.perl.org/perl5101delta.html#New-Modules-and-Pragmata – oylenshpeegul

관련 문제