develooper Front page | perl.perl5.porters | Postings from November 2014

Re: PADNAMEs and B::Showlex

Thread Previous
From:
Father Chrysostomos
Date:
November 27, 2014 22:11
Subject:
Re: PADNAMEs and B::Showlex
Message ID:
20141127221107.4659.qmail@lists-nntp.develooper.com
I wrote:
> If a pad name is no longer an SV, then the current Showlex output will
> not make sense any more:
> 
> At v5.21.6-42-g199670d:
>      
> $ perl5.21.7 -MO=Showlex -e 'my $a, our $b'
> Pad of lexical names for comppadlist has 3 entries
> 0: SPECIAL #1 &PL_sv_undef
> 1: PVNV (0x7fa47302ae88) $a
> 2: PVMG (0x7fa47302ae70) $b
> Pad of lexical values for comppadlist has 3 entries
> 0: SPECIAL #0 Nullsv
> 1: NULL (0x7fa47302aeb8)
> 2: NULL (0x7fa47302aee8)               
> -e syntax OK
> 
> At the top we show PVNV and PVMG, but pad names will be neither; nor
> will there be any such distinction.
...
> The output would look like this:
> 
> Pad of lexical names for comppadlist has 3 entries
> 0: (0xbaff1edbead5) undef
> 1: (0x7fa47302ae88) $a
> 2: (0x7fa47302ae70) $b
> Pad of lexical values for comppadlist has 3 entries
> 0: SPECIAL #0 Nullsv
> 1: NULL (0x7fa47302aeb8)
> 2: NULL (0x7fa47302aee8)
> -e syntax OK

The documentation says:

=head1 EXAMPLES

Traditional form:

 $ perl -MO=Showlex -e 'my ($i,$j,$k)=(1,"foo")'
 Pad of lexical names for comppadlist has 4 entries
 0: SPECIAL #1 &PL_sv_undef
 1: PVNV (0x9db0fb0) $i
 2: PVNV (0x9db0f38) $j
 3: PVNV (0x9db0f50) $k
 Pad of lexical values for comppadlist has 5 entries
 0: SPECIAL #1 &PL_sv_undef
 1: NULL (0x9da4234)
 2: NULL (0x9db0f2c)
 3: NULL (0x9db0f44)
 4: NULL (0x9da4264)
 -e syntax OK

New-style form:

 $ perl -MO=Showlex,-newlex -e 'my ($i,$j,$k)=(1,"foo")'
 main Pad has 4 entries
 0: SPECIAL #1 &PL_sv_undef
 1: PVNV (0xa0c4fb8) "$i" = NULL (0xa0b8234)
 2: PVNV (0xa0c4f40) "$j" = NULL (0xa0c4f34)
 3: PVNV (0xa0c4f58) "$k" = NULL (0xa0c4f4c)
 -e syntax OK

which seems to imply some level of backward-compatibility.  While I
could maintain that by faking the PVNV/PVMG/SPECIAL output (and add a
-newnewlex option), I don't know that there is much point.  Nothing on
CPAN is using this module.


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About