知ってそうで意外と知られていないperlの小技 10選という記事にある「モジュールのメソッドを上書きする」という項について考えてみました。記事にあるやり方では、 本来のメソッド(コード)のリファレンスを保存 型グロブによりメソッドを上書き 上書きしたメソッドを実行 保存していたコードリファレンスを更に上書き となっていたのですが、こうするよりも、上書きが必要な箇所のみをブロック({ ... })で囲み、その中でlocalを使って上書きする方がよいのでは、と思ったのです。具体的に書くと以下の通り。 use strict; use warnings; #---------- package Foo; sub something { print "something original.\n" }; #---------- package main; Foo->something(); { no