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 26.0 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). This offset is in characters unless the (no-longer-recommended) use bytes pragma is in effect, in which case the offset is in bytes. 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.