>:scalar
是什麼意思?
決不看到這種代碼之前..
>:scalar
是什麼意思?
決不看到這種代碼之前..
的特定「>:東西」語法告訴Perl的IO系統使用由THING指定的層。看看PerlIO documentation'層'。常見的圖層是'原始'和'utf8'。
在這種情況下,這允許您使用$ stdout作爲內存中的文件,該文件最終應包含發送到STDOUT的所有內容。更一般地說,語法允許您打開內存文件,然後將文件句柄發送到通常寫入文件的其他函數,以便您可以收集其輸出(或提供其輸入)。
您也可以通過打開「文件」,這是一個標量的參考實現同樣的結果:
open my $fh, ">:scalar", \$scalar or die;
open my $fh, ">", \$scalar or die;
它是由PerlIO的提供,並通過PerlIO::scalar實現的,雖然你不必「使用'訪問該功能的模塊。
Perl使用layered IO system。在鏈條的底部,會發現一個處理訪問媒體的層。 scalar
是IO系統層,用於處理從標量讀取而不是文件的讀取和寫入。話說
open(my $fh, '>:scalar', \$scalar)
標量句柄是說
open(my $fh, '>:unix', $file_name)
爲OS手柄的等價物。這完全是多餘的,因爲Perl已經知道它是一個標量句柄而不是操作系統句柄。
'>:scalar'是什麼意思? – asker
我已經在開始時添加了。 – Alex