2011-06-09 95 views
8

在Perl腳本如下:在Perl中,美元符號後跟問號是什麼意思?

$a=apple 
$b=orange 

if ($?==0) { 
    # do something 
} 

是什麼意思$?這裏?

+10

我希望它是更容易爲谷歌這樣的事情直接而不必知道你在找什麼... – 2011-06-09 03:01:36

+0

慶典也有一個'$?具有類似功能 – mob 2011-06-09 15:10:50

+0

'變量@ KarlKnechtel我不知道6年前http://symbolhound.com是否已經在那裏,但現在是。嘗試http://symbolhound.com/?q=perl+%24%3F。他們說_「SymbolHound是一個不會忽略特殊字符的搜索引擎,這意味着您可以輕鬆搜索像&,%和π這樣的符號。」_ – PerlDuck 2017-08-11 09:20:17

回答

10

$?以及所有其他「魔術」變量記錄在Perl手冊頁的perlvar部分。如果您實際上沒有使用man命令進行類似Unix的設置,則您還應該可以通過Google獲得man perlvar

+0

非常感謝您 – tweakmy 2011-06-09 04:48:10

+1

我認爲這不是一個有效的答案。引用文檔是可以的,但SO的想法是針對具體的答案提出具體的問題。 – 2014-02-01 01:18:29

13

這是上次系統操作,管道或反向操作返回的狀態。見參考文獻perlvar

+0

好:該參考實際解釋瞭如何解壓等待狀態的16位數量。然而,在一個傳統的Uɴx x系統中,終止信號的數量是'($?&127)',而核心標誌是'($?&128)'。孩子退出狀態是'($?>> 8)'。我不知道系統的信號位數多於那些系統會發生什麼情況。 – tchrist 2011-06-09 03:15:41

4

$?或$ CHILD_ERROR(如果使用英語)包含最後一個反向的狀態(或者從Perl運行一個子進程的幾種方式)。有關完整說明,請參閱perlvar

+0

非常感謝 – tweakmy 2011-06-09 04:46:18

+0

事實上,我在換班前得到了256,所以換班後我得到了1.爲什麼是1?是否有錯誤代碼的數據庫,無論如何描述了錯誤代碼 – tweakmy 2011-06-09 04:47:44

+0

,我發現批處理腳本返回一些錯誤,因爲我使用findstr,所以在這個perl腳本觸發的批處理腳本結束時,我插入了一個echo命令來欺騙它相信一切都好... – tweakmy 2011-06-09 05:00:29

5

其他人回答了關於$?的含義的問題。

我想我還要提到的是,還可以在命令提示符下,以獲取有關Perl的特殊變量幫助:

perldoc -v $? 

根據您的外殼,你可能需要逃避$

perldoc -h

相關問題