Re: [問題] 將很像hash形式中的值相加?
※ 引述《adu (^_^)》之銘言:
: ※ 引述《kornelius (c9s)》之銘言:
: 由於沒有裝package,所以打算把資料寫入@array去做
: @array = qw{ks*5 12 pp*5 3};
不需要裝 package 呀。 qw( ) 的定義你查一下 perldoc
perldoc -f qw
是用空白將字串分割成串列。
所以當你用上面的作法,你實際上會得到
('ks*5' , 12 , 'pp*5' , 3);
我前面那段用的模組也只是 Data::Dumper::Simple 而已,目的只是
在你跑的時候,可以清楚看到結果。你若是不使用也是沒關係的。 :)
__DATA__ 以下是當作資料輸入,所以 <DATA> 每次會讀一行 __DATA__ 以下的資料。
: 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: 122.117.168.163
※ 編輯: kornelius 來自: 122.117.168.163 (04/25 01:57)
推
04/25 09:00, , 1F
04/25 09:00, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章