pos SCALAR
Returns the location in SCALAR
where the last m//g
search
over SCALAR
left off. It returns the offset of
the character after the last one matched. (That is, it's equivalent to
length($`) + length($&)
.) This is the offset where the next
m//g
search on that string will start. Remember that
the offset of the beginning of the string is 0
. For example:
$grafitto = "fee fie foe foo";
while ($grafitto =~ m/e/g) {
print pos $grafitto, "\n";
}
prints 2
, 3
, 7
, and
11
, the offsets of each of the characters following an "e".
The pos function may be assigned a value to
tell the next m//g
where to start:
$grafitto = "fee fie foe foo";
pos $grafitto = 4; # Skip the fee, start at fie
while ($grafitto =~ m/e/g) {
print pos $grafitto, "\n";
}
This prints only 7
and 11
. (Thank
heaven.) The regular expression assertion, \G
, matches only
at the location currently specified by pos
for the string being searched.