Perl コーディング初心者質問コーナー Part28

このエントリーをはてなブックマークに追加
13前スレ993
>>前スレ999さん、ありがとうございます。
やりたい事は、あるクラスに2種類の振る舞いを与えたいのですが、
その振る舞いの違いが、組み込み関数のいずれを使うかといった違いのため
その関数のリファレンスを取って処理を切り替えようとしたところ、
"Not a CODE reference at ..."と言われてしまいました。

ソースで言うと以下のようなことをやろうとしております。
{ package Link;
  sub Switch {
    ・・・略・・・
    if ($flag) { $self->{create_func} = \$link; }
    else { $self->{create_func} = \$symlink; }
  }
  sub Create {
    ・・・処理・・・
    &{$self->{create_func}}($src, $dst);
    ・・・処理・・・
  }
}

なので、Filter::Simpleはちょっと違うかもです。
うーん。sub {} とか、eval で逃げちゃうのが楽かなぁ。