我有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