※ 引述《yalent ( 心只有妳 )》之銘言:
: ※ 引述《cutekid (KID)》之銘言:
: : #!/usr/bin/perl -w
: : while(<DATA>){
: : push(@refs,[m#\s+[./\w]+#g]);
: : }
: : foreach $ref (sort {$a->[1] <=> $b->[1]} @refs){
: : print @$ref,$/;
: : }
: : __END__
: : ALL 1 A 10834 93.74 P1
: : ALL 5 B 368 3.18 P2
: : ALL 8 B 218 1.89 N/A
: : ALL 7 B 93 0.80 F1
: : ALL 10 B 23 0.20 F2
: : ALL 6 A 21 0.18 F3
: 您好
: 謝謝您的回覆
: 但是我看不太懂這一串push(@refs,[m#\s+[./\w]+#g]);
: 我只大概知道是將[m#\s+[./\w]+#g] 丟到@refs中
: 但是[m#\s+[./\w]+#g]是什麼意思呢
以下恕刪
[m#\s+[./\w]+#g] 的意思如下
m : regular expression match
# : 分隔符號
\s+ : 所有的空格
[./\w]+ : 小數點、\、所有的數字文字
# : 分隔符號
g : 全部抓取
做法是將一列ex:
ALL 1 A 10834 93.74 P1
變成一個
[ ALL, 1, A, 10834, 93.74, P1] #因為\s+所以會看到值前面有空格
建立一個無名array,再放入@refs中。