2014-11-19 2 views
0

최근비트 시프트 연산 : 실행

my @cat = qw(cat); 
    use IPC::Run qw(run timeout); 

    eval { run \@cmd, '<', "in.txt", \&out, \&err or die "cat: $?" }; 
    #here why status variable is being done Binary Shift Right 
    my $status = $? >> 8; 

내가 바이너리 전환이 이루어진 이유를 만들어 드릴 수 없습니다 펄 모듈 중 하나에 대한 다음 코드를 가로 질러왔다.

답변

1

왜 바이너리 전환이 이루어 졌는지를 알 수 없습니다.

원하지 않는 정보를 얻지 못해서.

$?

는 세 가지 정보가 포함되어 있습니다 ( $? & 0x7F)
  • 가 코어 덤프가 (($? >> 7) & 1)
  • 이 오류 코드가 exit ($? > 8)
  • 에 전달 하였다 제작되었다 과정을 살해 무엇 신호

    0

    반환 코드를 '중첩'할 수 있습니다.

    cat은 오류 코드를 생성하고 run은 오류 코드 (또는 작성한 모든 perl 호출)를 생성합니다.