MirBSD manpage: B::Showlex(3p)

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


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


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


     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.


     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

perl v5.8.8                2005-02-05                           1

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


     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.


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


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


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

perl v5.8.8                2005-02-05                           2

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung