1 1ddd2d4e 2023-09-10 jrmu #!/usr/bin/perl
4 1ddd2d4e 2023-09-10 jrmu use warnings;
8 1ddd2d4e 2023-09-10 jrmu my %patterns = (
9 1ddd2d4e 2023-09-10 jrmu Gilligan => qr/(?:Wiley )?Gilligan/,
10 1ddd2d4e 2023-09-10 jrmu 'Mary-Ann' => qr/Mary-Ann/,
11 1ddd2d4e 2023-09-10 jrmu Ginger => qr/Ginger/,
12 1ddd2d4e 2023-09-10 jrmu Professor => qr/(?:The )?Professor/,
13 1ddd2d4e 2023-09-10 jrmu Skipper => qr/Skipper/,
14 1ddd2d4e 2023-09-10 jrmu 'A Howell' => qr/Mrs?. Howell/,
18 1ddd2d4e 2023-09-10 jrmu 'There is Mrs. Howell, Ginger, and Gilligan',
19 1ddd2d4e 2023-09-10 jrmu @patterns{ sort keys %patterns }
22 1ddd2d4e 2023-09-10 jrmu sub rightmost {
23 1ddd2d4e 2023-09-10 jrmu my( $string, @patterns ) = @_;
25 1ddd2d4e 2023-09-10 jrmu my $rightmost = -1;
26 1ddd2d4e 2023-09-10 jrmu while( my( $i, $pattern ) = each @patterns ) {
27 1ddd2d4e 2023-09-10 jrmu my $position = $string =~ m/$pattern/ ? $-[0] : -1;
28 1ddd2d4e 2023-09-10 jrmu $rightmost = $position if $position > $rightmost;
31 1ddd2d4e 2023-09-10 jrmu return $rightmost;