2011-10-10 4 views
-2

나는 소스 파일을 해독하고 그들을 실행하는 로더 프로그램을 작성하고 있습니다. 각 소스 파일에는 사용자가 사용자 인터페이스를 종료하는 데 사용할 수있는 서브 루틴이 들어있는 기반 프로그램이 들어 있습니다. 사용자가 종료 한 후에 정리를 실행해야하며, exit 또는 die을 호출하는 방법을 모르므로 필요한 파일 다음에 오는 정리 코드가 필요합니다.Perl 더 나은 방법으로 필요한 파일을 종료

답변

3

당신은에서와 같이 eval 블록의 코드를 포장하여 die 전화를 잡을 수 :

eval { 
    require Module::that_dies; 
}; 
if ([email protected]) { 
    # handle the exception here 
} 

이 비록 exit을 위해 도움이되지 않습니다. 내가 END{} 블록에 exit 블록 이후에 정리를 실행하는 코드를 가질 수는 있지만, 필요한 모듈이 종료 될 때만 종료되는 것이 아니라 종료 후에도 실행된다는 점에 유의하십시오. perldoc perlmod

+0

덕분에 와우에서

END { # code that runs after exit } require Module::that_exits; 

END 블록에 대해 자세히 알아 , 나는 완전히에 대한 perldoc을의 부분에 호도하는 방법을 일부'은'END에 대해 이야기 {}'블록 것을 exit'! 내가 데이터베이스에서 존재하는 디렉토리가 있는지 여부를 테스트 할 수 있다면 거기에있는 물건을 밀어 넣는 것이 좋을 것입니다. 그렇지 않으면 함께 연주 할 필요가 없습니다! 다시 한 번 감사드립니다 – rolands

+0

질문을 다시 열려면 편집해야합니다. –