使用的示例內,讓以下列方式Perl程序開始:的Perl:調用一個模塊的方法[]
use strict;
use warnings;
use Time::HiRes;
什麼是
my $request_start_epoch = [Time::HiRes::gettimeofday];
和
my $request_start_epoch = Time::HiRes::gettimeofday;
之間的差
?
使用的示例內,讓以下列方式Perl程序開始:的Perl:調用一個模塊的方法[]
use strict;
use warnings;
use Time::HiRes;
什麼是
my $request_start_epoch = [Time::HiRes::gettimeofday];
和
my $request_start_epoch = Time::HiRes::gettimeofday;
之間的差
?
前者在列表上下文中調用函數,組裝包含返回列表元素的匿名數組,並將$request_start_epoch
設置爲對該數組的引用。
後者在標量上下文調用函數並存儲在$request_start_epoch
其返回值。
這些都會是不同的;唯一的時間是相同的,如果函數在標量上下文中的行爲是將其列表上下文結果包含在匿名數組中並返回對其的引用。我從來沒有見過像這樣寫過的任何方法,但我確定某個地方有人在某個時候完成了它!
的括號[]轉換什麼是gettimeofday的返回的數組引用。在你的情況下,它將是一個單元數組。
創建數組引用。
$arr_ref = [ 1,2,3,4,5 ];
Deferencing它。
@{ $arr_ref };
訪問元素。
$ { $array_ref }[0]
我認爲編寫'@ $ arr_ref'和'$ arr_ref - > [0]'更爲常見。 – ruakh
你認爲什麼差別? – TLP
'時間::高分辨率:: gettimeofday'返回兩個整數(從新紀元整秒,因爲目前第二年初微秒)在列表上下文在標量上下文和浮點數(秒以來的劃時代)。 – mob
我冒昧地通過刪除構造函數代碼將該代碼歸結爲問題的核心。 – innaM