while (<>) {
chomp;
print join("\t", (split /:/)[0, 2, 1, 5]), "\n";
}
(split /:/)[0, 2, 1, 5]
這是什麼意思?這個拆分表達式在Perl中意味着什麼?
while (<>) {
chomp;
print join("\t", (split /:/)[0, 2, 1, 5]), "\n";
}
(split /:/)[0, 2, 1, 5]
這是什麼意思?這個拆分表達式在Perl中意味着什麼?
這意味着
my @fields = split /:/, $_;
my @fields_to_display = ($fields[0], $fields[2], $fields[1], $fields[5]);
通過拆分就行創建列表:,然後取元素此列表
它根據給定的正則表達式(在本例中爲單個:
)分割存儲在$_
(see perlvar)中的字符串,並從結果數組中選取元素編號0,2,1和5。
這是一個list slice的0,2,1,5。
在由split
返回的值中,按順序返回第一個(索引0),第三個(索引2),第二個(索引1)和第六個(索引5)。老實說,如果你運行這個程序,這應該是顯而易見的。繼續嘗試!
@mirod,它切斷尾部的'LF' :) –
您可以試試Perl教程,例如學習Perl。你的許多問題都有一點指導性的學習。 :) –