1 1ddd2d4e 2023-09-10 jrmu #!/usr/bin/perl
3 1ddd2d4e 2023-09-10 jrmu # Modify the program from Exercise 2 to use Regexp::Assemble so you have
4 1ddd2d4e 2023-09-10 jrmu # one pattern instead of an array of patterns.
7 1ddd2d4e 2023-09-10 jrmu use warnings;
10 1ddd2d4e 2023-09-10 jrmu use local::lib;
11 1ddd2d4e 2023-09-10 jrmu use Getopt::Std;
12 1ddd2d4e 2023-09-10 jrmu use Regexp::Assemble;
15 1ddd2d4e 2023-09-10 jrmu getopt("p:", \%opts);
16 1ddd2d4e 2023-09-10 jrmu if (defined($opts{p}) && scalar(%opts) == 1) {
17 1ddd2d4e 2023-09-10 jrmu open my $fh, "<", $opts{p} or die "Unable to open '$opts{p}': $!";
18 1ddd2d4e 2023-09-10 jrmu my @patterns;
19 1ddd2d4e 2023-09-10 jrmu my $ra = Regexp::Assemble->new;
20 1ddd2d4e 2023-09-10 jrmu while (<$fh>) {
22 1ddd2d4e 2023-09-10 jrmu $ra->add($_);
24 1ddd2d4e 2023-09-10 jrmu print "Type some input:\n\n";
25 1ddd2d4e 2023-09-10 jrmu while (<>) {
26 1ddd2d4e 2023-09-10 jrmu # print "$ra: $_\n";
27 1ddd2d4e 2023-09-10 jrmu my $re = $ra->re;
28 1ddd2d4e 2023-09-10 jrmu print "$.: $_" if /$re/;
29 1ddd2d4e 2023-09-10 jrmu #print "$.: $_" if $ra->match($_);
32 1ddd2d4e 2023-09-10 jrmu die "Usage: $0 -p file";