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
Enjoy, Have FUN! H.Merijn
|