Re: [問題] perl 排序

看板Perl作者 (Onizi)時間17年前 (2008/01/31 19:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
※ 引述《plankton (懶惰毛)》之銘言: : ※ 引述《onizi1224 (Onizi)》之銘言: : : 可以先做hash 例如 $key = aaa : : $hash{$key} = '0.154' : : 丟入hash後 用foreach 將hash 的ker 用sort排序以後列印出來 : 想法跟onizi1224大一樣 : 讀入檔之後,存成hash的格式, : $hash{aaa}=0.485 : 1.找出最大值 : @a= sort{$b<=>$a} values %hash; : 2. print 出來 : printf "key:$_ value:$hash{$_} ratio:",$hash{$_}/$a[0],"\n" : foreach(keys %hash); 獻醜一段 我不太會用高階或是進階的語法 所以會有些累贅 因為有些比較不會程式的同事會看 ㄧ方面也是因為我是新手 請多包含 #!perl/bin/perl $fname="COPIES_all_new_update_1107"; #$fname="test"; open(IN,'<'.$fname) || die "open $fname failed!!"; open(OUT,'>'.$fname.'sort') || die "open $fname\_tranOK!!"; while (<IN>) { $data = $_; $data_source=$data; chomp($data); @data = split "\t",$data; $sysno = $data[0]; $setnum = $data[1]; #push(@total_source,$setnum."|".$sysno); #print $setnum."|".$sysno."\n"; $code{$setnum."|".$sysno} = $data_source; } foreach (sort keys %code) { $newdata= $code{$_}; #print $newdata; print OUT $newdata; } close(IN); close(OUT); print "Finish!!\n"; 輸入檔我很喜歡將輸入檔作成exl的格式 因為exl的分欄可以直接轉換成teb相對用PERL做切割就很好用 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.67.151.50
文章代碼(AID): #17eQpO-M (Perl)
討論串 (同標題文章)
文章代碼(AID): #17eQpO-M (Perl)