⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subroutines.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
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>"&lt;FONT =
COLOR=3D'$name'&gt;</FONT><FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00cd00>&lt;/FONT&gt;"</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>"&lt;FONT =
COLOR=3D'$name'&gt;</FONT><FONT color=3D#cdad00>$_</FONT><FONT =
color=3D#00cd00>[0]&lt;/FONT&gt;"</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>"&lt;FONT =
COLOR=3D'$color'&gt;</FONT><FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00cd00>&lt;/FONT&gt;"</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 \&amp;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>\&amp;green, \&amp;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>&lt;&gt;<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 =
&lt;=3D&gt; $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 =
&lt;=3D&gt; $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>&lt;&gt;<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&gt; /^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&gt; <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&gt; <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-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>SUBJECT</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#98fb98>cmp</FONT> $b-&gt;<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-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NUMBER</FONT><FONT color=3D#00ffff>}</FONT>  &lt;=3D&gt; =
$b-&gt;<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-&gt;<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 + -