2011-01-06 3 views
1

는 다음 코드를 건너 왔어요 : 암시 적 포크에 실패 할 경우열기가 실패하면 어떻게됩니까?

my $pid = open (my $handler, "-|"); 
unless ($pid) 
{ 
    #child stuff 
    exec $command; 
} 
else 
{ 
    #parent stuff 
} 

는 어떤 일이 일어날까요? 명령이 어쨌든 실행됩니까?

답변

2

예 코드가 autodie과 같은 것을 사용하지 않는 한 명령이 실행됩니다.

open($fh, '-|')은 실패시에 undef을 반환합니다. 이는 false이므로, (unforked) 프로세스가 명령을 실행하여 자신을 종료합니다.

(관련이없는 메모에서, I, 그리고 다른 많은 프로그래머, unless ... else ... 나쁜 스타일이라고 생각하지만, 유효 펄입니다.)

관련 문제