我有3個分隔符(:,和;)的數據並且在數據中:和;通過使用3個分隔符分割數據,並將其一次存儲在2個獨立數組中
分割::只出現一次
__DATA__ 1:X,Y,X,A,B;C,D,E,F 2:A,C,B,D 3:W,R,T,E;E
步驟1,並建立一個散列
步驟2:通過
分割,並存儲每一個逗號分隔值直到找到爲止;
步驟3:遵循
一切;將在另一個陣列
從上面的數據,我試圖存儲所有的值;在數組B中
Output
A = [X,Y,X,B,A,B,C,D,W,R,T,E] B=[C,D,E,F,E]
下面陣列A和一切右邊是我試圖
my (@A,@B);
sub Compare_results
{
my %result_hash = map { chomp; split ':', $_ } <DATA> ; #split by colon and futher split by , and ; if any (doing it in insert_array)
foreach my $key (sort { $a <=> $b } (keys %result_hash))
{
@A = split ",", (/([^;]+)/)[0], $result_hash{$key};
@B = split ",", (/;([^;]+)/)[0], $result_hash{$key};
print Dumper \@A,\@B;
}
}
代碼但這不是產生任何結果,輸出陣列是空 請告訴我的正確的方法按數據分割數據,在單獨的數組 時間存儲器有也是一個辦法由三個分隔符拆分數據(一個分裂爲建立一個哈希)在一個拍攝
感謝
代碼如何失敗?它在生產什麼? – choroba
@choroba它沒有打印任何內容,如果你不理解,試圖理解 – LearningCpp
,你試圖用'map'過於聰明。 – Sobrique