📄 packages, libraries, and modules.mht
字号:
needed
</FONT> $found =3D <FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>last</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"None of =
</FONT><FONT color=3D#cdad00>@DBs</FONT><FONT color=3D#00cd00> =
loaded"</FONT> <FONT color=3D#ffa500>unless</FONT> $found<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN651>Delaying use Until Run Time</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>BEGIN</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@ARGV</FONT> =3D=3D <FONT =
color=3D#cdcd00>2</FONT> && <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>2</FONT> =3D=3D <FONT color=3D#ff7f50>grep</FONT> <FONT =
color=3D#00ffff>{</FONT>/^\d+$/<FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>))</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"usage: =
$0 num1 num2\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Some::Module</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>More::Modules</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$opt_b<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>Math::BigInt</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Fcntl</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>O_EXCL O_CREAT O_RDWR<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>Fcntl</FONT><FONT color=3D#00ffff>;</FONT>
Fcntl->import<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>O_EXCL O_CREAT =
O_RDWR<FONT color=3D#00ffff>));</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>load_module</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#cdad00>$_</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>];</FONT> <FONT =
color=3D#bebebe>#WRONG
</FONT> import <FONT color=3D#cdad00>$_</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>];</FONT> <FONT color=3D#bebebe>#WRONG
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>load_module<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'Fcntl'</FONT>, <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>O_EXCL O_CREAT O_RDWR<FONT =
color=3D#00ffff>));</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>load_module</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>eval</FONT> <FONT color=3D#00cd00>"require =
</FONT><FONT color=3D#cdad00>$_</FONT><FONT =
color=3D#00cd00>[0]"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#ffa500>if</FONT> =
$@<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>$_</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>]</FONT>->import<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>1</FONT> .. <FONT =
color=3D#cdad00>$#_</FONT><FONT color=3D#00ffff>]);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>autouse</FONT> <FONT color=3D#00cd00>Fcntl</FONT> =
=3D> <FONT color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT> =
O_EXCL<FONT color=3D#00ffff>()</FONT> O_CREAT<FONT =
color=3D#00ffff>()</FONT> O_RDWR<FONT color=3D#00ffff>()</FONT> <FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN654>Making Variables Private to a =
Module</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Alpha</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$aa</FONT> =3D =
<FONT color=3D#cdcd00>10</FONT><FONT color=3D#00ffff>;</FONT>
$x =3D <FONT color=3D#00cd00>"azure"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Beta</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$bb</FONT> =3D =
<FONT color=3D#cdcd00>20</FONT><FONT color=3D#00ffff>;</FONT>
$x =3D <FONT color=3D#00cd00>"blue"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>main</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"$aa, $bb, $x, =
$Alpha::x, $Beta::x\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdcd00>10</FONT>, <FONT color=3D#cdcd00>20</FONT>, , =
azure, blue
<FONT color=3D#bebebe>#-----------------------------
# Flipper.pm
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Flipper</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>strict</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>Exporter</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>vars</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ISA</FONT> <FONT color=3D#cdad00>@EXPORT</FONT> =
$VERSION<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@ISA</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Exporter<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@EXPORT</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>flip_words =
flip_boundary<FONT color=3D#00ffff>);</FONT>
$VERSION =3D <FONT color=3D#cdcd00>1.0</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$Separatrix</FONT> =
=3D <FONT color=3D#00cd00>' '</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># default to blank; must precede functions
</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>flip_boundary</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$prev_sep</FONT> =3D $Separatrix<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@_</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT> $Separatrix =3D <FONT =
color=3D#cdad00>$_</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>]</FONT> <FONT =
color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>return</FONT> $prev_sep<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>flip_words</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$line</FONT> =
=3D <FONT color=3D#cdad00>$_</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>];</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#cdad00>@words</FONT> =
=3D <FONT color=3D#ff7f50>split</FONT><FONT =
color=3D#00ffff>(</FONT>$Separatrix, $line<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>return</FONT> <FONT =
color=3D#98fb98>join</FONT><FONT color=3D#00ffff>(</FONT>$Separatrix, =
<FONT color=3D#98fb98>reverse</FONT> <FONT =
color=3D#cdad00>@words</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN657>Determining the Caller's =
Package</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT>$this_<FONT color=3D#98fb98>pack</FONT> =3D __PACKAGE__<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$that_<FONT color=3D#98fb98>pack</FONT> =3D <FONT =
color=3D#98fb98>caller</FONT><FONT color=3D#00ffff>();</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"I am in =
package __PACKAGE__\n"</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># WRONG!
</FONT>I am in <FONT color=3D#ffa500>package</FONT> __PACKAGE__
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Alpha</FONT><FONT color=3D#00ffff>;</FONT>
runit<FONT color=3D#00ffff>(</FONT><FONT color=3D#00cd00>'$line =3D =
<TEMP>'</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Beta</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>runit</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$codestr</FONT> =3D <FONT =
color=3D#ff7f50>shift</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>eval</FONT> $codestr<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#ffa500>if</FONT> =
$@<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Beta</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>runit</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$codestr</FONT> =3D <FONT =
color=3D#ff7f50>shift</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$hispack</FONT> =3D <FONT =
color=3D#98fb98>caller</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>eval</FONT> <FONT color=3D#00cd00>"package =
$hispack; $codestr"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#ffa500>if</FONT> =
$@<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Alpha</FONT><FONT color=3D#00ffff>;</FONT>
runit<FONT color=3D#00ffff>(</FONT> <FONT color=3D#ffa500>sub</FONT> =
<FONT color=3D#00ffff>{</FONT> $line =3D <TEMP> <FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Beta</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>runit</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$coderef</FONT> =3D <FONT =
color=3D#ff7f50>shift</FONT><FONT color=3D#00ffff>;</FONT>
&$coderef<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#98fb98>open</FONT> <FONT =
color=3D#00ffff>(</FONT>FH, <FONT color=3D#00cd00>"< =
/etc/termcap"</FONT><FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"can't open /etc/termcap: $!"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>(</FONT>$a, $b, $c<FONT color=3D#00ffff>)</FONT> =
=3D nreadline<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>3</FONT>, <FONT color=3D#00cd00>'FH'</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>Symbol</FONT> =
<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>Carp</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>nreadline</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#9ac0cd>$count</FONT>, <FONT color=3D#9ac0cd>$handle</FONT><FONT =
color=3D#00ffff>)</FONT> =3D <FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@retlist</FONT>,<FONT color=3D#9ac0cd>$line</FONT><FONT =
color=3D#00ffff>);</FONT>
croak <FONT color=3D#00cd00>"count must be > 0"</FONT> <FONT =
color=3D#ffa500>unless</FONT> $count > <FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT>
$handle =3D Symbol::qualify<FONT color=3D#00ffff>(</FONT>$handle, =
<FONT color=3D#00ffff>(</FONT>
<FONT color=3D#98fb98>caller</FONT><FONT color=3D#00ffff>()</FONT>
<FONT color=3D#00ffff>)[</FONT><FONT color=3D#cdcd00>0</FONT><FONT =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -