Name : perl-lexical-underscore
| |
Version : 0.4.0
| Vendor : Mageia_Org
|
Release : 4.mga9
| Date : 2022-03-21 03:40:42
|
Group : Development/Perl
| Source RPM : perl-lexical-underscore-0.4.0-4.mga9.src.rpm
|
Size : 0.03 MB
| |
Packager : umeabot < umeabot>
| |
Summary : access your caller\'s lexical underscore
|
Description :
Starting with Perl 5.10, it is possible to create a lexical version of the Perl default variable $_. Certain Perl constructs like the \"given\" keyword automatically use a lexical $_ rather than the global $_.
It is occasionally useful for a sub to be able to access its caller\'s $_ variable regardless of whether it was lexical or not. The \"(_)\" sub prototype is the official way to do so, however there are sometimes disadvantages to this; in particular it can only appear as the final required argument in a prototype, and there is no way of the sub differentiating between an explicitly passed argument and $_.
This caused me problems with Scalar::Does, because I wanted to enable the \"does\" function to be called as either:
does($thing, $role); does($role); # assumes $thing = $_
With \"_\" in the prototype, $_ was passed to the function at the end of its argument list; effectively \"does($role, $thing)\", making it impossible to tell which argument was the role.
Enter \"lexical::underscore\" which allows you to access your caller\'s lexical $_ variable as easily as:
${lexical::underscore()}
You can access lexical $_ further up the call stack using:
${lexical::underscore($level)}
If you happen to ask for $_ at a level where no lexical $_ is available, you get the global $_ instead.
This module does work on Perl 5.8 but as there is no lexical $_, always returns the global $_.
|
RPM found in directory: /vol/rzm3/linux-mageia/distrib/cauldron/armv7hl/media/core/release |