下面是來自ref
函數的文檔相關摘錄:
返回的值取決於事情的類型的引用是一個參考。內置類型包括:
SCALAR ARRAY HASH CODE REF GLOB LVALUE FORMAT IO VSTRING Regexp
在此基礎上,我想到的是,上一個文件句柄調用ref
將返回'IO'
。出人意料的是,它並不:
use strict;
use warnings;
open my $fileHandle, '<', 'aValidFile';
close $fileHandle;
print ref $fileHandle; # prints 'GLOB', not 'IO'
perlref
試圖解釋爲什麼:
這是不可能創造一個真正 參考的IO句柄(句柄 或DIRHANDLE)使用運算符的反斜槓 。您可以得到的最多的是 對typeglob的引用,它實際上是一個完整的符號表 條目[...]但是,仍然可以使用 類型的globs和globrefs 就好像它們是IO句柄。
在什麼情況下會ref
回報'IO'
呢?
我不要認爲'perlref'節選在這裏完全相關,但它是我能找到的最接近的。 – Zaid 2010-06-02 06:25:00
http://stackoverflow.com/questions/1399833/how-can-i-get-perls-ref-function-to-return-ref-io-and-lvalue – Konerak 2010-06-02 06:38:17