Skip navigation.
Home
Your source for Perl tips, howto's, faq and tutorials
( categories: )

The pattern matching quantifiers of a Perl regular expression are "greedy" (they match the longest possible string). To force the match to be "ungreedy", append a ? to the pattern quantifier (*, +).

Example:

#!/usr/bin/perl
 
$string="111s11111s";
 
#-- greedy match
$string =~ /^(.*)s/;
print "$1\n"; # prints 111s11111
 
#-- ungreedy match
$string =~ /^(.*?)s/;
print "$1\n"; # prints 111