在Perl 5.26.2中,當我運行這段代碼時:
use POSIX qw(setlocale)。
use locale;
setlocale語言,"en_US"。
print "$!";
我得到一個錯誤:
沒有這樣的檔案或目錄
。
我怎樣才能列印出這兩個字符$!?
uj5u.com熱心網友回復:
這里有幾個問題。而且不清楚你誤解的是哪一個。
$! 當被參考時, 因此,當你列印它時,你很可能得到一個看起來像錯誤的東西 - 因為它包含了你的代碼產生的最后一個系統錯誤。在這種情況下,很可能是你的 uj5u.com熱心網友回復: 你的代碼列印了由
標籤:$!
$!是一個變數。如果你在 Perl 中列印一個雙引號的字串,它將會展開包含在該字串中的任何變數。如果你不想把$!當作一個變數,那么你可以用一個單引號的字串來代替,或者轉義$來消除其特殊含義。
print '$!'。
print "$!";
$!是Perl的一個特殊的內置變數。如果你在perldoc perlvar中查找它,你會看到:
$!會檢索C errno整數變數的當前值。如果$!被分配了一個數值,這個數值將被存盤在errno中。當作為一個字串參考時,$!產生與errno對應的系統錯誤字串。
setlocale以某種方式失敗了,并且設定了錯誤變數。$!是 perl中的一個預定義變數。 而用雙引號構建的字串將被插值。setlocale產生的錯誤資訊。要列印字面意義上的"$!",你可以使用單引號,如print '$!';.
