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"
做了什么?没有这个,这段代码不起作用。
答案 0 :(得分:0)
最后一行将修改后的单词组合成一个完整的行并将其分配给$_
,这是在使用-p
时处理每一行后将打印的内容。 (您可能从the perlrun
manual section on -p
推断出这一点。)