Re: [問題] 將很像hash形式中的值相加?
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)
推
04/24 12:17, , 1F
04/24 12:17, 1F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章