perl的split,感覺它還是很容易讓新人誤會.但有很多時候,如果數據是固定標記來分隔,用他比使用正則可是方便多了.
為什么講perl的第三個參數很神奇啦.主要在于split的第三個參數.
我們知道split是工作在列表的環境,他會裝輸入的數據,多分割幾次,在建立結果列表,然后返回.接著,會返回第三個參數內的數據,其它的都扔棄.
第三個參數一定要非常小心,為什么,如下的程序,我們只需要前二個參數.我們注意第三個參數
#!/usr/bin/perl
while(<DATA>){
my ($aa, $dd) = split(/\s+/, $_, 2);
print "$aa || $dd ||\n";

}

__DATA__
1xxxxxxx 2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx 2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx 2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx 2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx 2xxxxxx 3xxxxxx 4xxxxx

如果split第三個參數是寫的2的話,輸出如下結果
1
1xxxxxxx || 2xxxxxx 3xxxxxx 4xxxxx
2
||
3
1xxxxxxx || 2xxxxxx 3xxxxxx 4xxxxx
4
||
5
如果split是寫的3的話,輸出如下結果
1
1xxxxxxx || 2xxxxxx ||
2
1xxxxxxx || 2xxxxxx ||
3
這主要是因為,如果想取得前2個字段,字段記數為3.因為需要給文件切成3份.拿出前二份.不然都給最后面部分做一份了.
轉自遠望技術論壇。
第三個參數在大數據量情況下還是可以提高不少速度。