.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "B::Showlex 3perl" .TH B::Showlex 3perl "2011-09-19" "perl v5.14.2" "Perl Programmers Reference Guide" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" B::Showlex \- Show lexical variables used in functions or files .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& perl \-MO=Showlex[,\-OPTIONS][,SUBROUTINE] foo.pl .Ve .SH "DESCRIPTION" .IX Header "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. .SH "EXAMPLES" .IX Header "EXAMPLES" Traditional form: .PP .Vb 10 \& $ perl \-MO=Showlex \-e \*(Aqmy ($i,$j,$k)=(1,"foo")\*(Aq \& 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 .Ve .PP New-style form: .PP .Vb 7 \& $ perl \-MO=Showlex,\-newlex \-e \*(Aqmy ($i,$j,$k)=(1,"foo")\*(Aq \& 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 .Ve .PP New form, no specials, outside O framework: .PP .Vb 6 \& $ perl \-MB::Showlex \-e \e \& \*(Aqmy ($i,$j,$k)=(1,"foo"); B::Showlex::compile(\-newlex,\-nosp)\->()\*(Aq \& 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) .Ve .PP Note that this example shows the values of the lexicals, whereas the other examples did not (as they're compile-time only). .SS "\s-1OPTIONS\s0" .IX Subsection "OPTIONS" The \f(CW\*(C`\-newlex\*(C'\fR option produces a more readable \f(CW\*(C`name => value\*(C'\fR format, and is shown in the second example above. .PP The \f(CW\*(C`\-nosp\*(C'\fR option eliminates reporting of SPECIALs, such as \f(CW\*(C`0: SPECIAL #1 &PL_sv_undef\*(C'\fR above. Reporting of SPECIALs can sometimes overwhelm your declared lexicals. .SH "SEE ALSO" .IX Header "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. .SH "TODO" .IX Header "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. .SH "AUTHOR" .IX Header "AUTHOR" Malcolm Beattie, \f(CW\*(C`mbeattie@sable.ox.ac.uk\*(C'\fR