0

perl オブジェクト " plan " にはサブルーチン " plan_exec_time " があります。

my $p = Plan->new;

私はこの方法でそれを呼び出すことができます:$p->plan_exec_time

しかし、$p->"plan_exec_time"動作しません。

今、私は変数参照によってサブルーチンにアクセスしたい:

my $t = "plan_exec_";

$p->"${t}time"

これも機能しません

オブジェクトのサブルーチンにアクセスする方法ですが、一時変数を作成しないでください。

これが機能するため:

my $x = "${t}time";
$p->$x;
4

2 に答える 2

3
my $t = "plan_exec";
$p->can($t."_time")->($p)

canメソッドはメソッドに ref を返します。

于 2013-01-28T08:00:40.857 に答える
0

一時変数の使用を避けたい理由がわかりません。他の解決策は醜くてハックです。ただし、次のように、文字列を一度に参照および逆参照できます。

my $p = Plan->new;
my $t = "plan_exec_";
$p->${\"${t}time"};
于 2013-01-28T09:06:41.487 に答える