• 締切済み

標準関数printの動作をカスタマイズしたい

mod_perl環境下でprintが$r->print()で置き換えられるのと同様に、通常のスクリプトでCORE::printの動作を変更する方法ってありますか? 例えば、s/java/perl/ を噛ましてから出力するようにする方法を教えて下さい。 mainパッケージだけではなく、他のモジュール内から呼ばれる標準関数のprintにも影響させたいです。

みんなの回答

回答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 は、置き換えができません。

関連するQ&A

専門家に質問してみよう