作者flu (Crazy Rhythm)
看板Perl
标题Re: [问题] 字串转阵列
时间Wed Apr 24 23:12:42 2013
※ 引述《hws110 ( only you )》之铭言:
: ABCDEFGHIJ
: V { All = 00009D0110; } @A1=010
: V { All = 10009D0000; } @A2=002
: V { All = 0209D00007; } @A3=000
: . @A4=009
: . @A5=99D
: . @A6=DD0
: for ($i=0; $i<10;$i++)
: {
: for ($j=0; $j<3;$j++)
: {
: $all_patt2 = substr(@all_pat[$j],$i,1);
: print "$all_pat2 "; }
: print "\n"; }
在上面的巢状for内
当 ($i, $j, $all_pat2) == ( 5,
??, 'DD0')的时候
如果用下面这段:
#$i == 5 ;
#$all_pat2 == 'DD0' ;
# 也要让%hash已经先用my在回圈外宣告为lexical scope
$hash{"A".$i} = [ split(//, $all_pat2) ] ;
那麽 @{ $hash{'A'.$i} } 就是你要的阵列
$hash{A5}->[0], $hash{A5}->[1], $hash{A5}->[2] 的值就是 'D', 'D', '0'
详情可以看看 perlreftut
或是google一下 hash of array, reference 之类的关键字
: 单纯在回圈里列印,然後在回圈外面列印换行符号
: 是可以印出我想要的结果,如下
: 010
: 002
: 000
: 009
: 99D
: DD0
: 但是我要怎麽将目前每一横行的结果都丢到每一个独特的阵列里面?
: 而原始资料有数万行,代号也有近百个,
: 我要怎麽样做才可以当代号有n个,就自动产生n个阵列来依序存值?
: 还望各位板友不吝解答,感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
1F:推 hws110:感谢您的回覆,我会再试试看~感谢~ 04/25 21:39
※ 编辑: flu 来自: 36.234.216.245 (04/27 00:15)