0

Perl に 2 つの関数があるとします。その 2 つの関数の参照の配列を作成します。& コマンドライン引数では、特定の関数を呼び出す配列のインデックスのみを渡します。引数を指定しないと、参照されたすべての関数が配列で呼び出されます (デフォルトの場合)。

それで、これを行うのを手伝ってくれる人はいますか?

## Array content function pointers
my @list= {$Ref0,$Ref1 }


my $fun0Name = “fun0”;
my $Ref0 =&{$fun0Name}();

my $fun1Name = “fun1”;
my $Ref1 =&{$fun1Name}();

#### Two functions

sub fun0() {
   print "hi \n";
}

sub fun1() {
   print "hello \n";
}

##### Now in cmd argument if i passed Test.pl -t 0(index of array ,means call to 1st function)
##### if i give test.pl -t (No option ) ....then i call both function. 
4

1 に答える 1

2

関数ポインター (Perl ではコード参照と呼ばれる) を作成するのは簡単です。

sub foo { 
    say "foo!";
}

sub bar { 
    say "bar!";
}

my $foo_ref = \&foo;
my $bar_ref = \&bar;

配列に物を入れるのはとても簡単です:

my @array = ( $foo_ref, $bar_ref );

コマンド ラインから引数を読み取るのは非常に簡単です。

my $arg = shift @ARGV;

配列内のものを検索することも非常に簡単です。

my $item = $array[$arg];

どの部分に問題がありますか?

于 2013-08-26T05:27:08.930 に答える