这是 similiar question .我有这个 Source File,我想把 Blue 记录放在 blue.out 和 Green 记录在 green.out。我从这里去哪里?
Blue 1-3
a
b
Green 1-3
d
e
Blue 4-6
i
j
Blue 7-9
m
n
Green 4-6
p
q
Green 7-9
s
t
所需输出两个文件 blue.out 和 green.out
blue.out green.out
------------------------------
a d
b e
i p
j q
m s
n t
这是我的代码
use strict;
use warnings;
my $blue = 'Blue';
my $green= 'Green';
while (<>) {
if (/$blue/) {
open(BLUEOUT,">>blue.out");
print BLUEOUT $_ ;
}
if (/$green/) {
open(GREENOUT,">>green.out");
print GREENOUT $_ ;
}
}
最佳答案
open my $blue, ">", "blue.out" or die "could not open output file blue.out: $?";
open my $green, ">", "green.out" or die "could not open output file green.out: $?";
my $curr = undef;
while (<>)
{
if (/Blue/) { $curr = $blue; next; }
if (/Green/) { $curr = $green; next; }
print $curr $_ if defined $curr;
}
close $blue;
close $green;
关于perl - 如何在 Perl 中从单个源生成两个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20715381/