0

假设我在 Perl 中有 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 回答