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: <%-(-(-(-<
In reply to Re^3: Use of uninitialized value in regexp
by AnomalousMonk
in thread Use of uninitialized value in regexp
by bbb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |