Ok, to be more clear.
I have this code:
#!/usr/bin/perl -w
use strict;
my $patterns = "/path/to/patterns.txt";
my $arg1 = shift;
open (PAT, '<', $patterns) or die "$patterns: $!\n";
my @patterns = <PAT>;.
close(PAT);
chomp @patterns;
my $regex_string = join '|', @patterns;
open( FILE, "<", "$arg1") or die "$arg1: $!\n";
$_ = do { local $/; <FILE> };
close(FILE);
if ( /($regex_string)/is ) {print "\n$arg1\n$1\n";}
Test list with patterns:
/path/to/patterns.txt
part1.*part2
Foo bar
Other pattern
Test file to scan:
hghghgghghh
part1
fff
part2
jhhjhjkjk
Foo bar
kkjkjkj
Other pattern
$1 will show all wildcarded text between part1 and part2 and not only the pattern part1.*part2 as it should.
/path/to/file
part1
fff
part2
Also, only first pattern found is displayed now. That's not a problem, but I'd also like to know how to display all patterns if a file contains more than one.
Please bear an unexperienced user like me. Thank you!
Regarding the other problem with xml file to scan, I must do more tests to know exactly where the problem is.
|