📄 subroutines.mht
字号:
color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>purple</FONT> =
<FONT color=3D#00ffff>{</FONT> color_font<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"purple"</FONT>, <FONT =
color=3D#cdad00>@_</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe># etc
#-----------------------------
</FONT><FONT color=3D#cdad00>@colors</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>red blue green =
yellow orange purple violet<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#ffa500>my</FONT> $name =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@colors</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>no</FONT> <FONT color=3D#b2dfee>strict</FONT> =
<FONT color=3D#00cd00>'refs'</FONT><FONT color=3D#00ffff>;</FONT>
*$name =3D <FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#00cd00>"<FONT =
COLOR=3D'$name'></FONT><FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00cd00></FONT>"</FONT> <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>*$name =3D <FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#00ffff>(</FONT>$<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#00cd00>"<FONT =
COLOR=3D'$name'></FONT><FONT color=3D#cdad00>$_</FONT><FONT =
color=3D#00cd00>[0]</FONT>"</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=3DAEN581>Trapping Undefined Function Calls =
with=20
AUTOLOAD</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>sub</FONT> <FONT =
color=3D#ff7f50>AUTOLOAD</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>$AUTOLOAD<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$color</FONT> =
=3D $AUTOLOAD<FONT color=3D#00ffff>;</FONT>
$color =3D~ <FONT color=3D#ff7f50>s</FONT>/.*:://<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>return</FONT> <FONT color=3D#00cd00>"<FONT =
COLOR=3D'$color'></FONT><FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00cd00></FONT>"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#bebebe>#note: sub chartreuse isn't defined.
</FONT><FONT color=3D#ff7f50>print</FONT> chartreuse<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"stuff"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>local</FONT> <FONT =
color=3D#9ac0cd>*yellow</FONT> =3D \&violet<FONT =
color=3D#00ffff>;</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#ffa500>local</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#9ac0cd>*red</FONT>, <FONT =
color=3D#9ac0cd>*green</FONT><FONT color=3D#00ffff>)</FONT> =3D <FONT =
color=3D#00ffff>(</FONT>\&green, \&red<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT>_stuff<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN584>Nesting Subroutines</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>sub</FONT> <FONT =
color=3D#b2dfee>outer</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$x</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#cdcd00>35</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>inner</FONT> =
<FONT color=3D#00ffff>{</FONT> <FONT color=3D#ffa500>return</FONT> $x * =
<FONT color=3D#cdcd00>19</FONT> <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#bebebe># WRONG
</FONT> <FONT color=3D#ffa500>return</FONT> $x + inner<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>outer</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$x</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#cdcd00>35</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>local</FONT> <FONT =
color=3D#9ac0cd>*inner</FONT> =3D <FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#ffa500>return</FONT> $x * <FONT =
color=3D#cdcd00>19</FONT> <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#ffa500>return</FONT> $x + inner<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN587>Program: Sorting Your Mail</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 size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch10/bysub1">download =
the following standalone program</A></FONT>
#!/usr/bin/perl</FONT><FONT color=3D#43cd80> </FONT><FONT =
color=3D#bebebe>
# bysub1 - simple sort by subject
</FONT><FONT color=3D#ffa500>my</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@msgs</FONT>, <FONT =
color=3D#cdad00>@sub</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$msgno</FONT> =3D =
<FONT color=3D#cdcd00>-1</FONT><FONT color=3D#00ffff>;</FONT>
$/ =3D <FONT color=3D#00cd00>''</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># paragraph reads
</FONT><FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT><><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>/^From/<FONT color=3D#ff7f50>m</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
/^Subject:\s*<FONT color=3D#00ffff>(</FONT>?:Re:\s*<FONT =
color=3D#00ffff>)</FONT>*<FONT color=3D#00ffff>(</FONT>.*<FONT =
color=3D#00ffff>)</FONT>/mi<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>$sub</FONT><FONT =
color=3D#00ffff>[</FONT>++$msgno<FONT color=3D#00ffff>]</FONT> =3D <FONT =
color=3D#98fb98>lc</FONT><FONT color=3D#00ffff>(</FONT>$<FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>)</FONT> || <FONT =
color=3D#00cd00>''</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#cdad00>$msgs</FONT><FONT =
color=3D#00ffff>[</FONT>$msgno<FONT color=3D#00ffff>]</FONT> .=3D =
$_<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#ffa500>my</FONT> $i =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>sort</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#cdad00>$sub</FONT><FONT =
color=3D#00ffff>[</FONT>$a<FONT color=3D#00ffff>]</FONT> <FONT =
color=3D#98fb98>cmp</FONT> <FONT color=3D#cdad00>$sub</FONT><FONT =
color=3D#00ffff>[</FONT>$b<FONT color=3D#00ffff>]</FONT> || $a =
<=3D> $b <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdcd00>0</FONT> .. <FONT =
color=3D#cdad00>$#msgs</FONT><FONT color=3D#00ffff>))</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#cdad00>$msgs</FONT><FONT color=3D#00ffff>[</FONT>$i<FONT =
color=3D#00ffff>];</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch10/bysub2">download =
the following standalone program</A></FONT>
#!/usr/bin/perl -n00
# bysub2 - awkish sort-by-subject
</FONT><FONT color=3D#ffa500>BEGIN</FONT> <FONT color=3D#00ffff>{</FONT> =
$msgno =3D <FONT color=3D#cdcd00>-1</FONT> <FONT =
color=3D#00ffff>}</FONT>
<FONT color=3D#cdad00>$sub</FONT><FONT =
color=3D#00ffff>[</FONT>++$msgno<FONT color=3D#00ffff>]</FONT> =3D <FONT =
color=3D#00ffff>(</FONT>/^Subject:\s*<FONT =
color=3D#00ffff>(</FONT>?:Re:\s*<FONT color=3D#00ffff>)</FONT>*<FONT =
color=3D#00ffff>(</FONT>.*<FONT color=3D#00ffff>)</FONT>/mi<FONT =
color=3D#00ffff>)[</FONT><FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>]</FONT> <FONT color=3D#ffa500>if</FONT> /^From/<FONT =
color=3D#ff7f50>m</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>$msg</FONT><FONT =
color=3D#00ffff>[</FONT>$msgno<FONT color=3D#00ffff>]</FONT> .=3D =
$_<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>END</FONT> <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#ff7f50>print</FONT> <FONT color=3D#cdad00>@msg</FONT><FONT =
color=3D#00ffff>[</FONT> <FONT color=3D#ff7f50>sort</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#cdad00>$sub</FONT><FONT =
color=3D#00ffff>[</FONT>$a<FONT color=3D#00ffff>]</FONT> <FONT =
color=3D#98fb98>cmp</FONT> <FONT color=3D#cdad00>$sub</FONT><FONT =
color=3D#00ffff>[</FONT>$b<FONT color=3D#00ffff>]</FONT> || $a =
<=3D> $b <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdcd00>0</FONT> .. <FONT =
color=3D#cdad00>$#msg</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>]</FONT> <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch10/bysub3">download =
the following standalone program</A></FONT>
#!/usr/bin/perl -00
# bysub3 - sort by subject using hash records
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>strict</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#cdad00>@msgs</FONT> =3D =
<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT><><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>push</FONT> <FONT =
color=3D#cdad00>@msgs</FONT>, <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#00cd00>SUBJECT</FONT> =3D> /^Subject:\s*<FONT =
color=3D#00ffff>(</FONT>?:Re:\s*<FONT color=3D#00ffff>)</FONT>*<FONT =
color=3D#00ffff>(</FONT>.*<FONT color=3D#00ffff>)</FONT>/mi,
<FONT color=3D#00cd00>NUMBER</FONT> =3D> <FONT =
color=3D#ff7f50>scalar</FONT> <FONT color=3D#cdad00>@msgs</FONT>, =
<FONT color=3D#bebebe># which msgno this is
</FONT> <FONT color=3D#00cd00>TEXT</FONT> =3D> <FONT =
color=3D#00cd00>''</FONT>,
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>if</FONT> =
/^From/<FONT color=3D#ff7f50>m</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>$msgs</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>-1</FONT><FONT =
color=3D#00ffff>]{</FONT><FONT color=3D#00cd00>TEXT</FONT><FONT =
color=3D#00ffff>}</FONT> .=3D $_<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#ffa500>my</FONT> $msg =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>sort</FONT> <FONT =
color=3D#00ffff>{</FONT><FONT color=3D#43cd80> </FONT>
$a-><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>SUBJECT</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#98fb98>cmp</FONT> $b-><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>SUBJECT</FONT><FONT color=3D#00ffff>}</FONT><FONT =
color=3D#43cd80> </FONT>
||<FONT color=3D#43cd80> </FONT>
$a-><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NUMBER</FONT><FONT color=3D#00ffff>}</FONT> <=3D> =
$b-><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NUMBER</FONT><FONT color=3D#00ffff>}</FONT><FONT =
color=3D#43cd80> </FONT>
<FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#cdad00>@msgs</FONT>
<FONT color=3D#00ffff>)</FONT>
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>print</FONT> $msg-><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>TEXT</FONT><FONT =
color=3D#00ffff>};</FO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -