我有一堆18MB的文本文件,需要在Perl中读取,提取特定信息并将其写入每个文件的新文件。如何在Perl中读取多个文件并创建包含这些文件中数据的不同文件
我该怎么做?
例如,下面的代码只适用于一个文件,并为代码中提到的文件创建一个新文件,但是我怎么能在多个文件上执行它,因为我有很多文件?
以下是我的代码,它只适用于单个文件。我想为许多文件做同样的事情。我该怎么做?
use Regexp::Common qw/net/;
use Regexp::Common qw/net/;
system("clear");
my $file2 = 'TR1';
open my $in, '<', $file2 or die $!;
open my $out, '>', 'Number_of_Hops_TR1_007' or die $!;
my $var = 0;
my $i = 0;
my $traceroute;
my $line;
while (my $line = <$in>) {
if ($line =~ /^traceroute to (\S+)/) {
$traceroute = $1;
$var++;
#print "$traceroute\n";
}
my ($ip) = $line =~ /(?: \d+ \s \s+) ($RE{net}{IPv4}) /msx;
if ($traceroute eq $ip) {
print $out $ip if defined, "\n";
if ($ip ne undef) {
{ $i++; }
}
}
else {
}
}
print $out "Number of traceroutes - $var\n";
print $out "Number of traceroutes reached destination - $i\n";
my $subs = $var - $i;
print $out
"Number of traceroutes that did not reaach destination ($subs)\n";
my $perc = ($i/$var) * 100;
print $out "Percentage of sucessful traceroutes ($perc%)\n";
我不知道这将如何适合我的代码,请任何帮助,因为当我运行程序,它只是继续运行 – user1581917 2012-08-07 18:07:41
如果脚本被称为'test.pl'那么你会运行它通过名称您想要解析的文件为其参数:'test.pl file1 file2 file3 ...'您的代码对一个输入文件进行硬编码。这个想法是将其改变为处理多个文件的循环。 – JRFerguson 2012-08-07 18:42:28