基本的に、変数/スカラーのみを使用してパッケージ関数を呼び出そうとしていますが、「エラー:括弧内の引数が正しくありません」というメッセージが表示される理由がわかりません。
サンプルの午後は次のとおりです。
package foo;
sub bar {
my $request = @_[0];
if ($request eq 'fubar') {
my $response = 'definitely';
return $response;
else {
my $response = 'definitely not';
return $response;
}
}
1;
そしてサンプルpl
use strict;
use lib "/blah/blah/custom_modules";
use sample;
my $package = 'foo';
my $package_sub = 'bar';
my $package_sub_args = 'fubar';
my $response = $package->$package_sub("$package_args");
print "$response\n";
そして、エラーが発生します。
ただし、次のバリエーションを使用すると機能します。
my $response = foo::bar('fubar');
my $response = foo::bar($package_sub_args);
しかし、上記のOO表記のタイプでは変数を使用できないため、->表記を使用する必要があると思います。
とにかく、非常に感謝するのを手伝ってください。
明確化-私が抱えている問題は、実行時までパッケージ、サブ、または引数を知らないことです。subが引数を必要としないときにそれを機能させることができます。しかし、私は引数を必要とするいくつかの潜水艦を持っています、そしてそれは私がつまずいているところです...