#! /usr/bin/perl -w use warnings; use strict; use Regexp::Assemble; if ($#ARGV + 1 < 1) { print "$0: list_of_regex [filter_target]\n"; exit 0; } my $regexfile = shift @ARGV; if (! -r $regexfile) { warn "$0: cannot read '$regexfile'"; exit 1; } my $re = Regexp::Assemble->new(file => "$regexfile", track => 1); my $target = shift @ARGV; my $input; unless (defined($target) and -f $target) { print STDERR "read from STDIN\n"; $input = *STDIN; } else { open $input, "<$target"; } my $line; while ($line = <$input>) { chomp $line; if ($re->match($line)) { print "OK: "; } else { print "NG: "; } print $line; if ($re->source) { print " /", $re->source, "/"; } print "\n"; }