sub iregex { qr/ ... /ix }
1) my $regex = iregex()
if ($isbn =~ m/$regex/ ) { print "Matched!\n }
2) my $regex = iregex()
if ($isbn =~ $regex ) { print "Matched!\n }
3) if ($isbn =~ iregex() ) { print "Matched!\n }
####
> perl -we'use strict;use P;
my $re = qr{ (\w+) }gx;
my $dat = "Just another cats meow";
my @matches = $dat =~ $re;
P "#matches=%s, matches=%s", scalar(@matches), \@matches;
exit scalar(@matches);'
output:
Having no space between pattern and following word is deprecated at -e line 2.
Bareword found where operator expected at -e line 2, near "qr/ (\w+) /gx"
syntax error at -e line 2, near "qr{ (\w+) }gx"
Execution of -e aborted due to compilation errors.
####
> perl -we'use strict;use P;
my $re = qr{ (\w+) }x;
my $dat = "Just another cats meow";
my @matches = $dat =~ /$re/g;
P "#matches=%s, matches=%s", scalar(@matches), \@matches;
exit scalar(@matches);'
output:
#matches=4, matches=["Just", "another", "cats", "meow"]
####
perl -we'use strict;use P;
my $re = qr{ (?xg) (\w+) };
my $dat = "Just another cats meow";
my @matches = $dat =~ $re;
P "#matches=%s, matches=%s", scalar(@matches), \@matches;
exit scalar(@matches);'
output:
Useless (?g) - use /g modifier in regex; marked by <-- HERE in m/ (?xg <-- HERE ) (\w+) / at -e line 2.
#matches=1, matches=["another"]