+ -
当前位置:首页 → 问答吧 → 求写好的perl程序

求写好的perl程序

时间:2011-09-10

来源:互联网

我现在有一堆文件(文件里包含子文件)每个文件是一个人的资料
我要在这堆文件里将相同编号(员工编号例:g.1.1.4;等很多不同的)的归类并同时打出此人的名字

输出例:
g.13 Yangli
g.13 huahua
g.13 mengyuan
g.13 yinghe
g.13 ljadfu
g.13 Tom


g.14 John
g.14 gyeha
g.14 juad
g.14 kaif



各位高手们有办法么?急啊

作者: ElaineandBrown   发布时间: 2011-09-10

只有输出,没有输入。

作者: iambic   发布时间: 2011-09-10

什么意思?

作者: ElaineandBrown   发布时间: 2011-09-10

每个原文件文件大概这样:
姓名:hasudf
年龄:23
组别;ju4
编号:g.18
底下还有各种资料

作者: ElaineandBrown   发布时间: 2011-09-10

1. 遍历每个文件
2. 对每个文件读取姓名和编号
3. 使用一个hash,没读完一个文件就把姓名放到编号所对应的数组里。
4. 遍历hash输出。

没什么难的。你尽量自己写吧。

作者: iambic   发布时间: 2011-09-10

不会弄啊……
拜托了,帮帮忙
对perl很不熟悉

作者: ElaineandBrown   发布时间: 2011-09-10

给你点关键代码吧。

1.
Perl code
while (<*.txt>) {
    my $filename = $_;
        # ...
}


2.
Perl code
open(IN, filename) or die;
my $content = do { local $/; <IN> };
my $no = $1 if $content =~ /编号:(.*)/;
my $name = $1 if $content =~ /姓名:(.*)/;


3.
Perl code
my %hash;
push(@{$hash{'g.18'}}, 'hasudf');


4.
Perl code
for my $no (sort keys %hash) {
    for my $name (@{$hash{$no}}) {
        print "$no:$name\n";
    }
}




作者: iambic   发布时间: 2011-09-10