以下に while ループがあります。
while (<>)
{
my $line = $_;
if ($line =~ m/ERROR 0x/)
{
$error_found +=1;
}
}
while ループが終了した後、"ERROR..." のようなものに一致し、それらを配列、リスト、またはハッシュに格納します。これどうやってするの?
以下に while ループがあります。
while (<>)
{
my $line = $_;
if ($line =~ m/ERROR 0x/)
{
$error_found +=1;
}
}
while ループが終了した後、"ERROR..." のようなものに一致し、それらを配列、リスト、またはハッシュに格納します。これどうやってするの?
データを配列にプッシュするだけです。
my @errors;
while (<>)
{
my $line = $_;
if ($line =~ m/ERROR 0x/)
{
push @errors, $line;
}
}
少しクリーンアップします。
my @errors;
while (my $line = <>)
{
if ($line =~ /ERROR 0x/)
{
push @errors, $line;
}
}
または多分
my @errors;
while (<>)
{
if (/ERROR 0x/)
{
push @errors, $_;
}
}
最後に、grep
ここでうまくいくことを理解してください。
my @errors = grep { /ERROR 0x/ } <>;
my @arr;
while (<>)
{
my $line = $_;
if ($line =~ m/ERROR 0x/)
{
push(@arr,$line) ;
}
}
print "$_\n" for @arr;