2011-05-17 48 views
4

在Perl中,$>$?具有特殊含義,其方式與$_@_「特殊」相同?

回答

13

是的,有許多特殊變量,其名稱是一個標點字符,包括標量變量>(書面$>)和標量?(書面$?)。它們記錄在perldoc perlvar中。

$>是進程的有效用戶ID。這是「神奇的」,因爲分配它將會改變EUID(如果允許的話)。

$?包含上次外部進程調用的狀態。這有點神奇(例如,你只能將整數賦值給它),但主要分配給它的幾個內置結構(例如反引號,即`foo`)。

+3

'$?'有很多魔力。您只能將-1到65534之間的整數賦值給它。您可以在'END {}'塊內設置它以更改退出程序的退出狀態。 – mob 2011-05-17 23:00:04

+2

'$?'實際上是神奇的,但我不知道到底是什麼。 (糟糕,太慢了!) – ikegami 2011-05-17 23:03:50