10
A
回答
16
這意味着你可以使用文件句柄來寫入和讀取標量變量。
my $var = "";
open my $fh, '>', \$var;
print $fh "asdf";
close $fh;
print $var; # asdf
歸根結底,這是隻是多了一個方式做
$var .= "asdf"
但也有背景,其中更方便或更合適使用比字符串操作範例文件句柄範式。
例如,開始與這個代碼:
open my $fh, '>', $logfile;
...
print $fh $some_message_to_be_logged;
... 500 more print $fh statements ...
close $fh;
但是,你知道嗎?現在,我寧願我的記錄日誌消息在一個標量,也許這樣我就可以通過他們尋找,操縱它們都寫磁盤之前,等我可以我所有的print
語句改爲
$logvar .= $some_message_to_be_logged
但在這種情況下更改open
聲明更方便。
open my $fh, '>', \$logvar
0
您可以直接打開文件句柄到標量變量。當你有一些行爲像文件一樣的東西時,它特別有用,但你不想在磁盤上有一個。這個例子是從perldoc採取:
close STDOUT;
open(STDOUT, ">", \$variable)
or die "Can't open STDOUT: $!";
它關閉STDOUT,然後重新打開它附連到$variable
。
相關問題
- 1. 使用File.new在Ruby中「打開」文件意味着什麼?
- 2. 什麼「打開!」在OCaml中意味着什麼?
- 3. 什麼在objc文件@class意味着
- 4. 在Java中打開RandomAccessFile意味着什麼?
- 5. 進程內存的開始意味着什麼
- 6. 在AngularJS中結尾意味着什麼double意味着
- 7. 什麼%*%意味着R中
- 8. 什麼呢##意味着在$ {}
- 9. 什麼===在PHP意味着
- 10. 什麼。意味着在PHP?
- 11. 「打開文件」是否意味着將其完全加載到內存中?
- 12. 在C中初始化內存爲零意味着什麼?
- 13. WCF斷開通訊意味着什麼?
- 14. 什麼__section()意味着Linux內核源
- 15. 〜=是什麼。在Stata意味着什麼?
- 16. 儲存庫佈局意味着什麼
- 17. void **意味着什麼
- 18. PREEMPTIVE_XE_DISPATCHER這意味着什麼?
- 19. Field.Index.NOT_ANALYZED_NO_NORMS意味着什麼
- 20. HttpServletResponse.SC_BAD_REQUEST意味着什麼?
- 21. Solr意味着什麼?
- 22. 溢出意味着什麼?
- 23. * | *這意味着什麼CSS?
- 24. 什麼<?意味着
- 25. %是什麼〜DP0意味着
- 26. 什麼-Dauto意味着
- 27. AccountExpirationDate意味着什麼?
- 28. 這是&意味着什麼?
- 29. 什麼?意味着iOS的
- 30. $這意味着什麼PHP?
你在哪裏讀到這個?這是誤導性的,因爲文件句柄總是*內存結構。它很可能是指直接打開文件句柄到Perl標量變量(在內存中)。 – Borodin
是的,你的評論是正確的,這就是我的意思 – airnet
'perldoc -f open'指這些爲「內存中的文件」 – mob