in reply to Re^2: Use global flag when declaring regular expressions with qr?
in thread Use global flag when declaring regular expressions with qr?
Some operations can be shortened even further. It is up to the reader to decide if that increases or decreases maintainability :)
sub match_url { my $row = shift; # No @_ required, that is the default my @matches = ($row =~ m/$re/g) or return; # do something with @matches } if (!@ARGV or $ARGV[0] eq "-") { chomp (@ARGV = <STDIN>); # chomp can be done in one go match_url ($_) for @ARGV; # Your match_url takes one arg, not a li +st } else { # Do I need to handle the error case with this syntax? while (<>) { chomp $_; # Is chomp really needed? match_url probably ignores + trailing EOL in $re match_url ($_); } }
for vs while
($str =~ m/$re/g) (note the parens) returns all matches in one list
use 5.012003; use warnings; my $str = "abacadabra"; my $rex = qr{(a\w)}; say "-- say"; say for ($str =~ m/$rex/g); say "-- while"; while ($str =~ m/$rex/g) { say $1; } -> -- say ab ac ad ab -- while ab ac ad ab
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Use global flag when declaring regular expressions with qr?
by ysth (Canon) on Oct 29, 2024 at 13:12 UTC | |
by Tux (Canon) on Oct 29, 2024 at 13:24 UTC | |
|
Re^4: Use global flag when declaring regular expressions with qr?
by Anonymous Monk on Oct 29, 2024 at 15:42 UTC | |
by ysth (Canon) on Oct 29, 2024 at 17:44 UTC |