Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# pos

Perl 5 version 18.2 documentation
Go to top
Show recent pages
Recently read

# pos

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- pos SCALAR

- pos

  Returns the offset of where the last `m//g` search left off for the variable in question (`$_` is used when the variable is not specified). Note that 0 is a valid match offset. `undef` indicates that the search position is reset (usually due to match failure, but can also be because no match has yet been run on the scalar).

  `pos` directly accesses the location used by the regexp engine to store the offset, so assigning to `pos` will change that offset, and so will also influence the `\G` zero-width assertion in regular expressions. Both of these effects take place for the next match, so you can't affect the position with `pos` during the current match, such as in `(?{pos() = 5})` or `s//pos() = 5/e` .

  Setting `pos` also resets the matched with zero-length flag, described under Repeated Patterns Matching a Zero-length Substring in perlre.

  Because a failed `m//gc` match doesn't reset the offset, the return from `pos` won't change either in this case. See perlre and perlop.