Re: [問題] 將很像hash形式中的值相加?

看板Perl作者 (c9s)時間16年前 (2009/04/24 01:58), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/5 (看更多)
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
文章代碼(AID): #19yAmnsM (Perl)
文章代碼(AID): #19yAmnsM (Perl)