- 締切済み
標準関数printの動作をカスタマイズしたい
mod_perl環境下でprintが$r->print()で置き換えられるのと同様に、通常のスクリプトでCORE::printの動作を変更する方法ってありますか? 例えば、s/java/perl/ を噛ましてから出力するようにする方法を教えて下さい。 mainパッケージだけではなく、他のモジュール内から呼ばれる標準関数のprintにも影響させたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- UsadaYusuke
- ベストアンサー率43% (55/126)
回答No.2
>例えば、s/java/perl/ を噛ましてから出力するようにする方法を教えて下さい。 #1の方も回答されているように、print本体をカスタマイズすることは「基本的には不可能」だと思った方がいいです。 何らかの処理を噛ませてからprintするには sub my_print{ my $tmp = $_[0]; # 含まれるすべての「java」という文字列を「perl」に置換 $tmp =~s/java/perl/g; print $tmp; } といった関数を作って、各ファイルからrequireしてやるのが一番スマートに思えます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
CORE::print は、置き換えができません。