perlsub: Improve the "Constant Functions" documentation
authorÆvar Arnfjörð Bjarmason <avar@cpan.org>
Sat, 10 May 2014 09:26:14 +0000 (09:26 +0000)
committerRicardo Signes <rjbs@cpan.org>
Mon, 12 May 2014 14:59:31 +0000 (10:59 -0400)
commitfe39f0d59b87549f2e6cb1df1dfeaa25215b19ab
tree6a650de9320f83cf0cb86a367d47d56dacd94609
parent9e153387d111262bc785c0e9ee5ecc62fea55a79
perlsub: Improve the "Constant Functions" documentation

Ever since perl-5.003_95-19-g5431012 which incorporated this patch:

      Title:  "Improve and update documentation of constant subs"
       From:  Tom Phoenix <rootbeer@teleport.com>
     Msg-ID:  <Pine.GSO.3.96.970331122546.14185C-100000@kelly.teleport.com>
       Date:  Mon, 31 Mar 1997 13:05:54 -0800 (PST)
      Files:  pod/perlsub.pod

We've documented that "BEGIN { my $x = 1; *X = sub () { $x } }" creates
an inlined subroutine, we just weren't doing so very explicitly. Patch
the documentation so that we now have explicit examples for the behavior
mentioned in the first paragraph of the section.

This also adds an explicit mention of the behavior reported as a bug in
[RT #79908], shows the user that you can just use B::Deparse rather than
relying on a warning to see the effects of inlining, and replaces a
contrived way to avoid inlining with just adding a "return".

While writing these docs I found a bug in the warning behavior mentioned
here, which I filed as [RT #121841]
pod/perlsub.pod