


ext::B::B::ShowlePerl)Programmers Referenceext::B::B::Showlex(3p)


NAME
       B::Showlex - Show lexical variables used in functions or
       files

SYNOPSIS
               perl -MO=Showlex[,-OPTIONS][,SUBROUTINE] foo.pl

DESCRIPTION
       When a comma-separated list of subroutine names is given
       as options, Showlex prints the lexical variables used in
       those subroutines.  Otherwise, it prints the file-scope
       lexicals in the file.

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

       New form, no specials, outside O framework:

        $ perl -MB::Showlex -e \
           'my ($i,$j,$k)=(1,"foo"); B::Showlex::compile(-newlex,-nosp)->()'
        main Pad has 4 entries
        1: PVNV (0x998ffb0) "$i" = IV (0x9983234) 1
        2: PVNV (0x998ff68) "$j" = PV (0x998ff5c) "foo"
        3: PVNV (0x998ff80) "$k" = NULL (0x998ff74)

       Note that this example shows the values of the lexicals,
       whereas the other examples did not (as they're compile-
       time only).





perl v5.10.1                2005-01-15                          1





ext::B::B::ShowlePerl)Programmers Referenceext::B::B::Showlex(3p)


   OPTIONS
       The "-newlex" option produces a more readable "name =>
       value" format, and is shown in the second example above.

       The "-nosp" option eliminates reporting of SPECIALs, such
       as "0: SPECIAL #1 &PL_sv_undef" above.  Reporting of
       SPECIALs can sometimes overwhelm your declared lexicals.

SEE ALSO
       "B::Showlex" can also be used outside of the O framework,
       as in the third example.  See "B::Concise" for a fuller
       explanation of reasons.

TODO
       Some of the reported info, such as hex addresses, is not
       particularly valuable.  Other information would be more
       useful for the typical programmer, such as line-numbers,
       pad-slot reuses, etc..  Given this, -newlex isnt a
       particularly good flag-name.

AUTHOR
       Malcolm Beattie, "mbeattie@sable.ox.ac.uk"



































perl v5.10.1                2005-01-15                          2


