in reply to Re^2: Use of uninitialized value in regexp
in thread Use of uninitialized value in regexp

In the expression  /foo$\t/ the RE compiler takes  $\ to be the  $OUTPUT_RECORD_SEPARATOR special scalar variable (see perlvar) and interpolates its value in the regex. One way to disambiguate  $ here would be to use the  /x regex modifier (see Modifiers in perlre) to introduce whitespace around the assertion:  /foo $ \t/x. However, this is meaningless because you're asking to match a pattern that has a  \t (tab) character beyond the end of the string! There is no such string. What is your real intent with this usage of the  $ assertion?

Update: The  /m modifier (again, Modifiers) allows the  ^ $ anchor assertions to match against embedded  \n (newline) characters in a string, but again, the expression  / $ \t /xm is unmatchable because a  $ before an embedded newline would be followed by a  \n and not a  \t character.


Give a man a fish:  <%-(-(-(-<

Replies are listed 'Best First'.
Re^4: Use of uninitialized value in regexp
by bbb (Novice) on Feb 17, 2015 at 01:12 UTC

    Hi Anomalous Monk,

    Thank you for enlightening me that I will not be needing $ anchor for the said scenario. :)

    And thank you also for providing me details in how to deal with Modifiers.

    Thanks and regards!