顯示頁面舊版反向連結Fold/unfold all回到頁頂 本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。 ====== Perl 呼叫回傳碼 ====== 因為大量使用 perl(主程式) 呼叫 perl(子程式) 或其他外部程式, 所以需要判別所呼叫的 perl(子程式) 或其他外部程式執行正確或異常來讓 perl(主程式) 進行後續的處理邏輯 找了一下, perl(子程式) 可以使用 exit($ret_code); 方式讓 perl(主程式) 知道是否處理正確或異常 <note> * 因為 exit 所回傳的變數是包含兩個 bytes, 實際的回傳的值是在變數的前一個 byte, 所以要將變數向右 shift 1 byte(8 bits) * perl 將變數向右 shift 8 bits 語法是 <cli> $var = $var >> 8; </cli> </note> ===== 簡單的範例說明 ===== ==== perl(主程式) t1.pl ==== * t1.pl<cli> #!/usr/bin/perl $r2=system("./t2.pl"); $r2=$r2 >> 8; print("[$r2][$?]\n"); $r3=system("./t3.pl"); $r3=$r3 >> 8; print("[$r3][$?]\n"); </cli> ==== perl(子程式) t2.pl (正常離開) ==== * t2.pl<cli> #!/usr/bin/perl print("hello!\n"); exit; </cli> ==== perl(子程式) t3.pl (異常離開) ==== * t3.pl<cli> #!/usr/bin/perl print("Good!\n"); exit(99); </cli> ==== 實際執行 ==== * <cli>jonathan@jonathan1:~$ perl t1.pl hello! [0][0] Good! [99][25344] </cli> ===== 參考網址 ===== * https://stackoverflow.com/questions/7080434/getting-perl-to-return-the-correct-exit-code * https://perlmaven.com/how-to-exit-from-perl-script {{tag>perl}} tech/perl_exit_code.txt 上一次變更: 2022/03/31 15:46由 jonathan