《intermediate perl》一书中第8章练习2是一个分割文件的练习
Gilligan: 1 coconut
Skipper: 3 coconuts
Gilligan: 1 banana
Ginger: 2 papayas
Professor: 3 coconuts
MaryAnn: 2 papayas
.......
要求按照:前的字符将原始文件分割成若干个*.info文件
可以有2种方法解决
1、
#!/usr/local/bin/perl
use strict;
use warnings;
use IO::File;
my %output_handles;
while (<>) {
unless (/^(S+):/) {
warn "ignoring the line with missing name: $_";
next;
}
my $name = lc $1;
my $handle = $output_handles{$name} ||=
my $fh =IO::File->new(">$name.info")|| die "Cannot create $name.info: $!";
#print "$. $fhn" ;
#print "$. $handlen" ;
print $handle $_;
}
2.
#!/usr/local/bin/perl
use strict;
use warnings;
use IO::File;
my %output_handles;
while (<>) {
unless (/^(S+):/) {
warn "ignoring the line with missing name: $_";
next;
}
my $name = lc $1;
# my $handle = $output_handles{$name} ||=
my $fh =IO::File->new(">>$name.info")|| die "Cannot create $name.info: $!";
#print "$. $fhn" ;
#print "$. $handlen" ;
print $fh $_;
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6456/viewspace-1005306/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/6456/viewspace-1005306/