我必须为管道运行修改一些 Perl 脚本,并编写一个包装脚本以使用给定的一组输入参数运行它们。在我这样做之前,我必须了解第一个程序中发生了什么。我需要帮助来破译这段代码:
# declare and initialise an empty hash
my %to_keep= ();
# an array
@line = ('some\one', 'two', 'three', 'four');
# trim the identifier
$line[0]=~s/\/[1]$//;
# store this into an array
@{$to_keep{$line[0]}{'1'}}=($line[1],$line[2]);
print @;
我熟悉 perl 替换函数,s///。它去:
s/text-regex_to_be_replaced/replacement/modifier.
但是,我不太确定上面的代码在做什么。如果我理解正确,它将用 line[1] 替换每次出现的“\”,直到字符串的结尾(由“$/”表示)。这个对吗?
我不确定的另一部分是“商店”评论下方的代码。我认为它将数组的哈希存储到数组中。有人可以解释代码是如何工作的以及给定变量它打印出什么吗?另外,如何检索存储在数组中的数据?
额外的问题:有人可以解释为管道运行修改 perl 脚本是如何工作的吗?
谢谢