からの呼び出し方法は、私は、メソッドのハッシュテーブルを持っています。私は何を持っていることは次のとおりです。perlのハッシュ
$makefileMacroSimplifiers{$macroName}->($self, $macroName.$ws1, \@parms);
これが動作しているようですが、明示的にメソッドに$self
に渡すために私には少し奇妙に思えます。これを行うにはより良い方法がありますか、これは通常のコーディング慣行と考えられていますか? (私はウェブ上でこれを行うためのよりよい方法は見つけられませんでしたが、適切な検索基準を使用していない場合に備えて尋ねると思いました)。
私は '$ self'を渡す必要があると思います。つまり、同じクラス内の別のメソッドからメソッドを呼び出す場合です。クラス自体の外部からメソッド( '$ obj-> method(...) 'という構文を使用して)を呼び出すと、通常は祝福されたオブジェクト参照があり、' $ self'を渡す必要はありません –
呼び出しメソッドを表示します。 '$ macroName'と' $ ws1'はどこから来たのですか? – Borodin
'$ macroName'と' $ ws1'は入力ファイルを解析した結果です。この場合、 '$ macroName'は' strip'、 '$ ws1'は' strip'の後の空白です。 (大丈夫、技術的にはメイクファイルでは、 'strip'はマクロではなく関数ですが、私はプログラム中のCコンパイラと同じ名前をつけようとしています)。 – user2766918