善意解釋,爲什麼這個問題來
我數據文件雖然使用嵌套perl grep輸出不同。爲什麼?
DATA----1
DATA----2
DATA----3
DATA----4
DATA----5
DATA----6
DATA----7
SAMPLE----1
SAMPLE----12
SAMPLE----13
SAMPLE----2
SAMPLE----3
SAMPLE----4
SAMPLE----5
OTHER----1
OTHER----2
OTHER----3
,我需要與DATA和樣品到一個數組中開始和另一個陣列應該具有啓動內容整條生產線與樣品結尾兩位數字
我已得到輸出與以下腳本
use strict;
use warnings;
open(FH, "di.txt");
my @file = <FH>;
close(FH);
my @arr2 = grep { $_ =~ m/^SAMPLE.+\d\d$/g } @file; ## this array prints
my @arr1 = grep { $_ =~ m/^DATA|^SAMPLE/g } @file;
print @arr1,"\n\t~~~~~~~~~~~\n\n",@arr2;
首先當作使用
use strict;
use warnings;
open(FH, "di.txt");
my @file = <FH>;
close(FH);
my @arr1 = grep { $_ =~ m/^DATA|^SAMPLE/g } @file;
my @arr2 = grep { $_ =~ m/^SAMPLE.+\d\d$/g } @file; ## this doesn't print
print @arr1,"\n\t~~~~~~~~~~~\n\n",@arr2;
同時運行此一個,只打印@arr1
會是什麼原因@arr2
不打印
對於我來說,您的兩個腳本都會給出相同的結果。沒有打印'@ arr2'。 – serenesat
@Sant:只要在'\ d'後面移除'$',你就會得到所需的輸出保持數組的順序。 – serenesat
總是使用3個參數來打開帶有詞法文件句柄和錯誤處理的文件。 '打開$ fh,「<」,「di.txt」或者「無法打開:$!」;' – serenesat