in reply to Re^2: Inlining a "lexically-scoped scalar which has no other references"
in thread Inlining a "lexically-scoped scalar which has no other references"

The oldest I have is 5.6.0, but it doesn't give a warning even when uncommenting the last line.

Changing no warnings; to use warnings; shows that the following creates a constant in 5.6.0 and 5.6.1, but not in 5.8.0:

sub with_proto () { my $lex }
>c:\progs\perl560\bin\perl test.pl Use of uninitialized value at test.pl line 12. Constant subroutine with_proto redefined at test.pl line 12. Subroutine with_proto redefined at test.pl line 16. Subroutine with_proto redefined at test.pl line 20. Subroutine with_proto redefined at test.pl line 25. Subroutine with_proto redefined at test.pl line 29. Subroutine with_proto redefined at test.pl line 36. Subroutine with_proto redefined at test.pl line 41. Subroutine with_proto redefined at test.pl line 45. Subroutine with_proto redefined at test.pl line 55. Constant subroutine with_proto redefined at test.pl line 58. >c:\progs\perl561\bin\perl test.pl Use of uninitialized value at test.pl line 12. Constant subroutine with_proto redefined at test.pl line 12. Subroutine with_proto redefined at test.pl line 16. Subroutine with_proto redefined at test.pl line 20. Subroutine with_proto redefined at test.pl line 25. Subroutine with_proto redefined at test.pl line 29. Subroutine with_proto redefined at test.pl line 36. Subroutine with_proto redefined at test.pl line 41. Subroutine with_proto redefined at test.pl line 45. Subroutine with_proto redefined at test.pl line 55. Constant subroutine with_proto redefined at test.pl line 58. >c:\progs\perl580\bin\perl test.pl Subroutine with_proto redefined at test.pl line 12. Subroutine with_proto redefined at test.pl line 16. Subroutine with_proto redefined at test.pl line 20. Subroutine with_proto redefined at test.pl line 25. Subroutine with_proto redefined at test.pl line 29. Subroutine with_proto redefined at test.pl line 36. Subroutine with_proto redefined at test.pl line 41. Subroutine with_proto redefined at test.pl line 45. Subroutine with_proto redefined at test.pl line 55. Constant subroutine with_proto redefined at test.pl line 58.

Update: I identified the wrong one. Fixed.

Replies are listed 'Best First'.
Re^4: Inlining a "lexically-scoped scalar which has no other references"
by ikegami (Patriarch) on Sep 28, 2009 at 02:09 UTC
    How does one use that?!?!
      Well the question "what for" was the next after identfying "what is it"... (I hoped to find a new black magic gadget to play with ;-)

      I think the intended logic was "if optimization produces a constant return value, then the value will be inlined"!

      Is this a now bug or is it just deprecated and the docs are out of phase?

      Consequently: Do I have to start perlbug or do I have to send a mail to pod-people...?

      Cheers Rolf

        I'd use perlbug, especially since it isn't clear if this is a regression or a doc error (since we can't fathom its use).