这段代码在perl中做了什么

时间:2017-08-10 15:39:47

标签: perl

perl的输入是这样的:

ID NALT NMIN NHET NVAR SING TITV QUAL DP G|DP NRG|DP
PT-1RTW 1 1 1 4573 1 NA 919.41 376548 23.469 58
PT-1RTX 0 0 0 4566 0 NA NA NA 34.5866 NA
PT-1RTY 1 1 1 4592 1 NA 195.49 189549 24.0416 18
PT-1RTZ 0 0 0 4616 0 NA NA NA 44.1474 NA
PT-1RU1 0 0 0 4609 0 NA NA NA 28.2893 NA
PT-1RU2 2 2 2 4568 2 0 575.41 330262 28.2108 49
PT-1RU3 0 0 0 4617 0 NA NA NA 35.9204 NA
PT-1RU4 0 0 0 4615 0 NA NA NA 30.5878 NA
PT-1RU5 0 0 0 4591 0 NA NA NA 26.2729 NA

这是代码:

perl -pe 'if($.==1){@L=split;foreach(@L){$_="SING.$_";}$_="@L\n"}'

我有点猜到它正在处理第一行,为每个单词添加SING。但最后一部分$_="@L\n"做了什么?没有这个,这段代码不起作用。

1 个答案:

答案 0 :(得分:0)

最后一行将修改后的单词组合成一个完整的行并将其分配给$_,这是在使用-p时处理每一行后将打印的内容。 (您可能从the perlrun manual section on -p推断出这一点。)

相关问题