作者kornelius (c9s)
看板Perl
标题Re: [问题] 将很像hash形式中的值相加?
时间Fri Apr 24 01:58:05 2009
try this?
s/\w\w\*(\d)\s(\d)/ $h{$1}+=$2 /e while( <DATA> );
use Data::Dumper::Simple;
warn Dumper( %h );
__DATA__
VD*5 3
YY*3 4
Qv*5 2
pQ*3 1
写的好看一点:
my %h;
while ( <DATA> ) {
my ($k,$v) = m/\w\w\*(\d)\s(\d)/;
$h{ $k } ||=0, $h{ $k }+=$v;
}
※ 引述《adu (^_^)》之铭言:
: 标题订的很奇怪...因为我想不到该如何形容这样的问题(和解决)
: 我的档案资料形式是由"英文字*数字 数字"所组成的,如
: VD*5 3
: YY*3 4
: Qv*5 2
: pQ*3 1
: ...
: 前面的英文字和*不管他,如果第一个数字相同,就把第二个数字相加
: 就像上面的例子会变成
: *5 5 (#VD的3+Qv的2)
: *3 5 (#YY的4+pQ的1)
: 总觉得是个不用很长就可以完成的Script...不过怎麽想也想不来@@"""
: 恳请版友帮忙:)
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.168.163
※ 编辑: kornelius 来自: 122.117.168.163 (04/24 02:01)
1F:推 adu:感谢您~! 04/24 12:17