作者onizi1224 (Onizi)
看板Perl
标题Re: [问题] perl 排序
时间Thu Jan 31 19:11:19 2008
※ 引述《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