2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml">
5 <title>B::Showlex - Show lexical variables used in functions or files
</title>
6 <meta http-equiv=
"content-type" content=
"text/html; charset=utf-8" />
7 <link rev=
"made" href=
"mailto:" />
10 <body style=
"background-color: white">
11 <table border=
"0" width=
"100%" cellspacing=
"0" cellpadding=
"3">
12 <tr><td class=
"block" style=
"background-color: #cccccc" valign=
"middle">
13 <big><strong><span class=
"block"> B::Showlex - Show lexical variables used in functions or files
</span></strong></big>
17 <p><a name=
"__index__"></a></p>
22 <li><a href=
"#name">NAME
</a></li>
23 <li><a href=
"#synopsis">SYNOPSIS
</a></li>
24 <li><a href=
"#description">DESCRIPTION
</a></li>
25 <li><a href=
"#examples">EXAMPLES
</a></li>
28 <li><a href=
"#options">OPTIONS
</a></li>
31 <li><a href=
"#see_also">SEE ALSO
</a></li>
32 <li><a href=
"#todo">TODO
</a></li>
33 <li><a href=
"#author">AUTHOR
</a></li>
40 <h1><a name=
"name">NAME
</a></h1>
41 <p>B::Showlex - Show lexical variables used in functions or files
</p>
45 <h1><a name=
"synopsis">SYNOPSIS
</a></h1>
47 perl -MO=Showlex[,-OPTIONS][,SUBROUTINE] foo.pl
</pre>
51 <h1><a name=
"description">DESCRIPTION
</a></h1>
52 <p>When a comma-separated list of subroutine names is given as options, Showlex
53 prints the lexical variables used in those subroutines. Otherwise, it prints
54 the file-scope lexicals in the file.
</p>
58 <h1><a name=
"examples">EXAMPLES
</a></h1>
59 <p>Traditional form:
</p>
61 $ perl -MO=Showlex -e 'my ($i,$j,$k)=(
1,
"foo
")'
62 Pad of lexical names for comppadlist has
4 entries
63 0: SPECIAL #
1 &PL_sv_undef
64 1: PVNV (
0x9db0fb0) $i
65 2: PVNV (
0x9db0f38) $j
66 3: PVNV (
0x9db0f50) $k
67 Pad of lexical values for comppadlist has
5 entries
68 0: SPECIAL #
1 &PL_sv_undef
74 <p>New-style form:
</p>
76 $ perl -MO=Showlex,-newlex -e 'my ($i,$j,$k)=(
1,
"foo
")'
77 main Pad has
4 entries
78 0: SPECIAL #
1 &PL_sv_undef
79 1: PVNV (
0xa0c4fb8)
"$i
" = NULL (
0xa0b8234)
80 2: PVNV (
0xa0c4f40)
"$j
" = NULL (
0xa0c4f34)
81 3: PVNV (
0xa0c4f58)
"$k
" = NULL (
0xa0c4f4c)
83 <p>New form, no specials, outside O framework:
</p>
85 $ perl -MB::Showlex -e \
86 'my ($i,$j,$k)=(
1,
"foo
"); B::Showlex::compile(-newlex,-nosp)-
>()'
87 main Pad has
4 entries
88 1: PVNV (
0x998ffb0)
"$i
" = IV (
0x9983234)
1
89 2: PVNV (
0x998ff68)
"$j
" = PV (
0x998ff5c)
"foo
"
90 3: PVNV (
0x998ff80)
"$k
" = NULL (
0x998ff74)
</pre>
91 <p>Note that this example shows the values of the lexicals, whereas the other
92 examples did not (as they're compile-time only).
</p>
95 <h2><a name=
"options">OPTIONS
</a></h2>
96 <p>The
<code>-newlex
</code> option produces a more readable
<code>name =
> value
</code> format,
97 and is shown in the second example above.
</p>
98 <p>The
<code>-nosp
</code> option eliminates reporting of SPECIALs, such as
<code>0: SPECIAL
99 #
1 &PL_sv_undef
</code> above. Reporting of SPECIALs can sometimes overwhelm
100 your declared lexicals.
</p>
104 <h1><a name=
"see_also">SEE ALSO
</a></h1>
105 <p><code>B::Showlex
</code> can also be used outside of the O framework, as in the third
106 example. See
<code>B::Concise
</code> for a fuller explanation of reasons.
</p>
110 <h1><a name=
"todo">TODO
</a></h1>
111 <p>Some of the reported info, such as hex addresses, is not particularly
112 valuable. Other information would be more useful for the typical
113 programmer, such as line-numbers, pad-slot reuses, etc.. Given this,
114 -newlex isnt a particularly good flag-name.
</p>
118 <h1><a name=
"author">AUTHOR
</a></h1>
119 <p>Malcolm Beattie,
<code>mbeattie@sable.ox.ac.uk
</code></p>
120 <table border=
"0" width=
"100%" cellspacing=
"0" cellpadding=
"3">
121 <tr><td class=
"block" style=
"background-color: #cccccc" valign=
"middle">
122 <big><strong><span class=
"block"> B::Showlex - Show lexical variables used in functions or files
</span></strong></big>