一个perl函数调用使我感到困惑,有人可以帮助我吗?
catFiles这样调用:

catFiles( \@LINKFILES => "$output_prefix.links" );
catFiles函数定义:
sub catFiles {

    unlink("$_[1]") if(exists $_[1]);
    system qq( cat "$_" >> "$_[1]" ) for @{$_[0]};
}

我不知道为什么那里有=>,我认为应该是,

最佳答案

=>(几乎)等效于Perl中的,。 (有关差异,请参见the "official" documentation。)

通常在定义哈希值以指示键和值之间的关系时使用它:

my %hash = (
  'a' => 1,
  'b' => 2,
);

我们可以将其写为my %hash = ('a', 1, 'b', 2);,而不会改变行为,但这看起来并不好。您甚至可以执行my $hash = ('a', 1 => 'b', 2);,但这很令人困惑。

同样,在您的情况下,您可以将代码编写为
catFiles(\@LINKFILES, "$output_prefix.links");

它的功能与=>版本相同。

在这里,它已被用作语法糖,我想表明@LINKFILES的内容将被串联到"$output_prefix.links"中。

09-27 20:51