如何使用Perl打印到變量?如何在Perl中打印到變量而不是文件?
我已經工作了一段程序,登錄高度詳細的時尚的迭代進步......
print $loghandle $some_message;
不過,我想也有選擇地打印部分的消息發送到不同的文件。當然,我可以把代碼與...
print $loghandle $some_message
print $otherloghandle $some_message
或重寫整個業務成一個函數。等等。
我想要做的是做一些魔術當我打開$ loghandle這樣,當我print
「ING,我其實只是在做一個sprintf
十歲上下的操作對一個變量(稱之爲$current_iteration
),使當我得到了一個決策點我可以做這樣的事情......
print $real_log_file $current_iteration;
print $other_real_log_file $current_iteration if($condition);
我相當肯定我見過像這樣的地方,但我不知道它在哪裏或在哪裏看。
編輯:File :: Tee在* nix上解決了這個問題,但我在Windows上運行。
似曾相識? http://stackoverflow.com/questions/1532544/how-can-i-send-stdout-and-stderr-to-a-log-file-and-to-the-screen-in-win32-perl/1532691# 1532691 – 2009-10-07 21:30:43
可能。我並沒有試圖真正開啓真正的流(儘管這並不重要);它更多地設置一個變量來充當目標流。我很懶,不想重寫50多條日誌消息,請參閱。 :-) – 2009-10-07 21:36:23
@保羅·納丹我連接到布萊恩福伊的答案。使用Log4perl。將'$ condition'表示爲日誌記錄級別,定義操作。由於我沒有時間檢查它是如何工作的,所以我不會加入這個答案,但我會根據過去的經驗徹底推薦Log4perl。 – 2009-10-07 21:57:21