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

看板Perl作者 (^_^)時間16年前 (2009/04/25 00:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《kornelius (c9s)》之銘言: : 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; : } 由於沒有裝package,所以打算把資料寫入@array去做 @array = qw{ks*5 12 pp*5 3}; my %h; while (@array) { my ($k,$v) = m/\w\w\*(\d)\s(\d)/; $h{ $k } ||=0, $h{ $k }+=$v; } 並沒有像預期一樣得到5 15的結果,請問該怎麼處理呢:) 有嘗試寫一個Script,不過也是error百出 @array = qw{5 12 5 3}; #先做前處理,讓資料都是數字 @array = %KV; #把5 12 5 3變成hash while(keys %KV) { #如果有%KV的存在 if(keys %KV = keys %KV){ #如果hash中有兩個相同的key values %KV = (values %KV + values %KV) #則把value相加 } 原本以為會順利,還是出現error.. 能請問版大們怎麼改正嗎:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.174.37.218
文章代碼(AID): #19yUjy2r (Perl)
討論串 (同標題文章)
文章代碼(AID): #19yUjy2r (Perl)