#!usr/bin/perl -w
use strict;
my $Error_cnt = 0;
my $Info_cnt = 0;
my $file = "./raw.txt";
my @Error;
my @Info;
my $name;
my $id ;
my $date;
my $data;
my $error;
my $info;
open (TEST,"<",$file);
while (my $line = <TEST>) {
# chomp $line;
# next if $line =~ /^\s*$/;
print $line;
if($line =~ m/(?<id>r\d+)\s+\|\s+(?<name>\w+)\s+\|\s+(?<date>\d+\-\d+\-\d+)/g ) {
$name = $+{name};
$id = $+{id};
$date = $+{date};
print $name." | ". $id." | ".$date."\n";
}
elsif($line =~ m/^Error\:\s+(?<data>[\d\D]+$)/g ) {
$Error_cnt = $Error_cnt+1;
$data = $+{data};
print $data."\n";
$error = "$name | $id | $date | $data \n";
print $error;
push @Error,$error;
}
elsif($line =~ m/^Info\:\s+(?<data>[\d\D]+$)/g ) {
$Info_cnt = $Info_cnt+1;
print $Info_cnt;
$data = $+{data};
print $data."\n";
$info = "$name | $id | $date | $data";
print $info;
push @Info,$info;
print @Info;
}
}
print "Error Count : ".$Error_cnt."\n";
print "Info Count : ".$Info_cnt."\n\n";
print "Error:\n @Error\n";
print "Info:\n @Info\n";
结果: