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 で逃げちゃうのが楽かなぁ。
14nobodyさん:03/09/15 21:56 ID:???
15nobodyさん:03/09/15 22:34 ID:???
$hoge{$hoge}
ってどういう意味ですか?
16nobodyさん:03/09/15 22:45 ID:???
キー$hogeで取り出せる、ハッシュ%hogeに含まれる要素。
1716:03/09/15 22:48 ID:???
訂正。キー$hogeと対を成す、ハッシュ%hogeに含まれるバリュー。
18nobodyさん:03/09/15 23:35 ID:W9KyN8NY
DBD-Oracleをインストールしたいのですができません。
Error: PPD for 'DBD-Oracle.ppd' could not be found.
ってでてしまいます。パッケージダウンロートしてきてReadmeに書いてあるとおりに
展開したディレクトリで
ppm install DBD-Oracle.ppd とかやってみたんですけどこちらもだめでした。
ActivePerl 5.8.0をつかっています。どなたか知恵を貸してください
1918:03/09/15 23:37 ID:W9KyN8NY
すいません。二行目のエラーは
ppm install DBD-Oracleとやったらでました。
20nobodyさん:03/09/16 00:03 ID:???