2011-06-21 182 views
1
while (<>) { 
    chomp; 
    print join("\t", (split /:/)[0, 2, 1, 5]), "\n"; 
} 

(split /:/)[0, 2, 1, 5]這是什麼意思?這個拆分表達式在Perl中意味着什麼?

+0

@mirod,它切斷尾部的'LF' :) –

+0

您可以試試Perl教程,例如學習Perl。你的許多問題都有一點指導性的學習。 :) –

回答

9

這意味着

my @fields   = split /:/, $_; 
my @fields_to_display = ($fields[0], $fields[2], $fields[1], $fields[5]); 

通過拆分就行創建列表:,然後取元素此列表

4

它根據給定的正則表達式(在本例中爲單個:)分割存儲在$_see perlvar)中的字符串,並從結果數組中選取元素編號0,2,1和5。

+0

我認爲$ _是人們獲得PERL最難的概念。 – Tremmors

+3

@Tremmors,這是第二個。首先是這種語言被稱爲「Perl」的概念。 – ikegami

+2

@Tremmors,至於使用'$ _',我不知道如何「如果省略了EXPR,則分割$ _'字符串。」可以更清晰。或者你真的在說人們遇到問題的概念是閱讀文檔以確定函數是如何工作的? – ikegami

7

這是一個list slice的0,2,1,5。

在由split返回的值中,按順序返回第一個(索引0),第三個(索引2),第二個(索引1)和第六個(索引5)。老實說,如果你運行這個程序,這應該是顯而易見的。繼續嘗試!

相關問題