start page | rating of books | rating of authors | reviews | copyrights

Programming Perl

Programming PerlSearch this book
Previous: 3.2.108 pop Chapter 3
Functions
Next: 3.2.110 print
 

3.2.109 pos

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.


Previous: 3.2.108 pop Programming Perl Next: 3.2.110 print
3.2.108 pop Book Index 3.2.110 print