Re: [问题] 杂凑取值的问题

楼主: rom1025 (περ'ιπεπια)   2013-01-23 01:06:49
※ 引述《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中。
作者: cutekid (可爱小孩子)   2013-01-23 02:49:00
哈哈,谢谢你帮我解释XD
作者: yalent ( 心只有妳 )   2013-01-24 19:13:00
感谢您的解说~

Links booklink

Contact Us: admin [ a t ] ucptt.com