5

一个 perl 函数调用把我弄糊涂了,谁能帮帮我?</p>

catFiles像这样调用:

catFiles( \@LINKFILES => "$output_prefix.links" );

catFiles函数定义:</p>

sub catFiles {

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

我不知道为什么会有=>我认为应该是,.

4

1 回答 1

11

=>(几乎)等价,于 Perl。(有关差异,请参阅“官方”文档。)

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

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".

于 2013-04-07T02:45:22.947 回答