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

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

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

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

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

systemdの思想と機能 Linuxを支えるシステム管理のためのソフトウェアスイート (Software Design plusシリーズ)
[ad] systemdの思想と機能 Linuxを支えるシステム管理のためのソフトウェアスイート (Software Design plusシリーズ)
森若 和雄 (単行本(ソフトカバー))