Ronald and Matthew, many thanks. jl -----Original Message----- From: Ronald J Kimball <[email protected]> To: Jonathan Levi <[email protected]> Cc: macperl <[email protected]> Sent: Wed, Feb 3, 2016 12:55 pm Subject: Re: [MacPerl] $PREMATCH Question On Tue, Feb 02, 2016 at 08:59:44PM -0500, Jonathan Levi via macperl wrote: > Can someone explain why the following: > > echo alphabet | perl -e '$_=<STDIN>; if (m/pha/){print $PREMATCH, "\n"}' > > yields "" instead of "al", as I expected? > > Jonathan If you want the long name, you need to use the English module, as mentioned near the top of perlvar <http://perldoc.perl.org/perlvar.html>. For example: echo alphabet | perl -MEnglish -e '$_=<STDIN>; if (m/pha/){print $PREMATCH, "\n"}' Using /p and ${^PREMATCH}, as Matthew suggested, will avoid performance penalties in longer scripts, however. RonaldThread Previous | Thread Next