作者rom1025 (περ'ιπεπια)
看板Perl
标题Re: [问题] 杂凑取值的问题
时间Wed Jan 23 01:06:49 2013
※ 引述《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中。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.241.128.89
1F:推 cutekid:哈哈,谢谢你帮我解释XD 01/23 02:49
2F:推 yalent:感谢您的解说~ 01/24 19:13