created: 2020-12-24T08:39:21.000Z

perlでサブルーチンにモンキーパッチをあてる

ライブラリ内部の挙動を一時的に変更したい時、以下のように書いてメソッドを上書きすることができる。

sub f {
    # 警告の抑制
    no warnings 'redefine';
    # Foo::Bar クラスの roo メソッドを書き換え
    local *Foo::Bar::roo = sub { my $self = shift; ... }
}

あまり褒められたやりかたでないのでデバッグ中などあくまで一時的な対処で使う。

ERROR FREE 世界のトップ企業がこぞって採用したMIT博士のミスを減らす秘訣
[ad] ERROR FREE 世界のトップ企業がこぞって採用したMIT博士のミスを減らす秘訣
邱強, 牧髙光里 (Kindle版)