in reply to Re: 5.18.0 is available NOW!
in thread 5.18.0 is available NOW!

See perldelta.

Most notable changes (imo):

Replies are listed 'Best First'.
Re^3: 5.18.0 is available NOW!
by Anonymous Monk on May 23, 2013 at 07:15 UTC

    What does 'lexical $_ is now experimental' mean? Is something like this still doable?

    while(<SOMEHANDLE>) { chomp; my $string = "hello" .$_; print $string; }

    Still work?

      Yes, still works. That's not explicitly creating a lexical $_.

      Here's an excerpt from Perl 5.18.0's "perlvar" (I'm not linking here because perldoc.perl.org hasn't loaded up v5.18 yet.):

      $_ is by default a global variable. However, as of perl v5.10.0, you can use a lexical version of $_ by declaring it in a file or in a block with "my". Moreover, declaring "our $_" restores the global $_ in the current scope. Though this seemed like a good idea at the time it was introduced, lexical $_ actually causes more problems than it solves. If you call a function that expects to be passed information via $_, it may or may not work, depending on how the function is written, there not being any easy way to solve this. Just avoid lexical $_, unless you are feeling particularly masochistic. For this reason lexical $_ is still experimental and will produce a warning unless warnings have been disabled. As with other experimental features, the behavior of lexical $_ is subject to change without notice, including change into a fatal error.


      Dave