"Perl for Perl Newbies" - Part 2Regular ExpressionsUseful Flags

7.8. Useful Flags

There are other flags than ethat can be appended to the end of the match or substitution.

An ifollowing the regular expression call, causes a case-insensitive operation on the string. Thus, for example, an "A" will match both "a" and "A". Note that the strings placed in $1, $2and friends will still retain their original case.

A gcauses the match or substitution to match alloccurrences, not just one. If used with a match in an array context (e.g: @occurrences = ($string =~ /$regexp/g);) it retrieves all the matches and if used with a substitution it substitutes all the occurrences with the string.

This example replaces all the occurrences of the word "hello" by the index of their occurrence:

use strict;
use warnings;

my
$index =
0;
sub 
put_index
{

$index++;

return
$index;
}

my
$string =
shift;

$string =~
s/
hello
/
put_index()
/gei;

print
$string,
"
\n
";

Written by Shlomi Fish