加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl函数调用困惑了我

发布时间:2020-12-15 21:47:57 所属栏目:大数据 来源:网络整理
导读:一个perl函数调用让我感到困惑,任何人都可以帮助我吗? catFiles这样调用: catFiles( @LINKFILES = "$output_prefix.links" ); catFiles函数定义: sub catFiles { unlink("$_[1]") if(exists $_[1]); system qq( cat "$_" "$_[1]" ) for @{$_[0]};} 我不
一个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,);

我们可以把它写成我的%hash =(‘a’,1,’b’,2);没有改变行为,但看起来不太好.你甚至可以做我的$hash =(‘a’,1 =>’b’,2);但那只是令人困惑.

同样,在您的情况下,您可以将代码编写为

catFiles(@LINKFILES,"$output_prefix.links");

它会和=>做同样的事情版.

这里它被用作语法糖,我想这表明@LINKFILES的内容将被连接成“$output_prefix.links”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读