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

📄 referencesandrecords.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
<FONT color=3D#ff7f50>shift</FONT>   <FONT =
color=3D#00ffff>}</FONT>,<FONT color=3D#43cd80> </FONT>
        <FONT color=3D#00cd00>"BUMP"</FONT>   =3D&gt; <FONT =
color=3D#ffa500>sub</FONT> <FONT color=3D#00ffff>{</FONT> $count +=3D =
<FONT color=3D#ff7f50>shift</FONT>  <FONT color=3D#00ffff>}</FONT>,<FONT =
color=3D#43cd80> </FONT>
        <FONT color=3D#00cd00>"RESET"</FONT>  =3D&gt; <FONT =
color=3D#ffa500>sub</FONT> <FONT color=3D#00ffff>{</FONT> $count =3D =
$start  <FONT color=3D#00ffff>}</FONT>,
    <FONT color=3D#00ffff>};</FONT><FONT color=3D#43cd80> </FONT>
    $bundle-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>"LAST"</FONT><FONT color=3D#00ffff>}</FONT> =3D =
$bundle-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>"PREV"</FONT><FONT color=3D#00ffff>};</FONT><FONT =
color=3D#43cd80> </FONT>
    <FONT color=3D#ffa500>return</FONT> $bundle<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=3DAEN616>Creating References to =
Methods</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>$mref =3D <FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#00ffff>{</FONT> $obj-&gt;meth<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@_</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>};</FONT><FONT =
color=3D#43cd80> </FONT>
<FONT color=3D#bebebe># later...</FONT><FONT color=3D#43cd80>  =
</FONT><FONT color=3D#bebebe>
</FONT>$mref-&gt;<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"args"</FONT>, <FONT color=3D#00cd00>"go"</FONT>, <FONT =
color=3D#00cd00>"here"</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$sref =3D \$obj-&gt;meth<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$cref =3D $obj-&gt;can<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"meth"</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=3DAEN619>Constructing Records</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>$record =3D <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#00cd00>NAME</FONT>   =3D&gt; <FONT =
color=3D#00cd00>"Jason"</FONT>,
    <FONT color=3D#00cd00>EMPNO</FONT>  =3D&gt; <FONT =
color=3D#cdcd00>132</FONT>,
    <FONT color=3D#00cd00>TITLE</FONT>  =3D&gt; <FONT =
color=3D#00cd00>"deputy peon"</FONT>,
    <FONT color=3D#00cd00>AGE</FONT>    =3D&gt; <FONT =
color=3D#cdcd00>23</FONT>,
    <FONT color=3D#00cd00>SALARY</FONT> =3D&gt; <FONT =
color=3D#cdcd00>37</FONT>_<FONT color=3D#cdcd00>000</FONT>,
    <FONT color=3D#00cd00>PALS</FONT>   =3D&gt; <FONT =
color=3D#00ffff>[</FONT> <FONT color=3D#00cd00>"Norbert"</FONT>, <FONT =
color=3D#00cd00>"Rhys"</FONT>, <FONT =
color=3D#00cd00>"Phineas"</FONT><FONT color=3D#00ffff>]</FONT>,
<FONT color=3D#00ffff>};</FONT>

<FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"I am =
</FONT><FONT color=3D#cdcd00>%s</FONT><FONT color=3D#00cd00>, and my =
pals are </FONT><FONT color=3D#cdcd00>%s</FONT><FONT =
color=3D#00cd00>.\n"</FONT>,
    $record-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NAME</FONT><FONT color=3D#00ffff>}</FONT>,
    <FONT color=3D#98fb98>join</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>", "</FONT>, @<FONT =
color=3D#00ffff>{</FONT>$record-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>PALS</FONT><FONT color=3D#00ffff>}});</FONT>
<FONT color=3D#bebebe>#-----------------------------
# store record
</FONT><FONT color=3D#cdcd00>$byname</FONT><FONT =
color=3D#00ffff>{</FONT> $record-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NAME</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>}</FONT> =3D $record<FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># later on, look up by name
</FONT><FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT>$rp =
=3D <FONT color=3D#cdcd00>$byname</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"Aron"</FONT><FONT =
color=3D#00ffff>})</FONT> <FONT color=3D#00ffff>{</FONT>        <FONT =
color=3D#bebebe># false if missing
</FONT>    <FONT color=3D#ff7f50>printf</FONT> <FONT =
color=3D#00cd00>"Aron is employee </FONT><FONT =
color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00>.\n"</FONT>, =
$rp-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>EMPNO</FONT><FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe># give jason a new pal
</FONT><FONT color=3D#ff7f50>push</FONT> @<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#cdcd00>$byname</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"Jason"</FONT><FONT =
color=3D#00ffff>}</FONT>-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>PALS</FONT><FONT color=3D#00ffff>}}</FONT>, <FONT =
color=3D#00cd00>"Theodore"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"Jason now has =
</FONT><FONT color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00> =
pals\n"</FONT>, <FONT color=3D#ff7f50>scalar</FONT> @<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#cdcd00>$byname</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"Jason"</FONT><FONT =
color=3D#00ffff>}</FONT>-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>PALS</FONT><FONT color=3D#00ffff>}};</FONT>
<FONT color=3D#bebebe>#-----------------------------
# Go through all records
</FONT><FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>((</FONT>$name, $record<FONT color=3D#00ffff>)</FONT> =
=3D <FONT color=3D#ff7f50>each</FONT> <FONT =
color=3D#cdcd00>%byname</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>printf</FONT> <FONT =
color=3D#00cd00>"</FONT><FONT color=3D#cdcd00>%s</FONT><FONT =
color=3D#00cd00> is employee number </FONT><FONT =
color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00>\n"</FONT>, $name, =
$record-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>EMPNO</FONT><FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# store record
</FONT><FONT color=3D#cdad00>$employees</FONT><FONT =
color=3D#00ffff>[</FONT> $record-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>EMPNO</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>]</FONT> =3D $record<FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># lookup by id
</FONT><FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT>$rp =
=3D <FONT color=3D#cdad00>$employee</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>132</FONT><FONT =
color=3D#00ffff>])</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"employee =
number 132 is </FONT><FONT color=3D#cdcd00>%s</FONT><FONT =
color=3D#00cd00>\n"</FONT>, $rp-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NAME</FONT><FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>$byname</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"Jason"</FONT><FONT =
color=3D#00ffff>}</FONT>-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>SALARY</FONT><FONT color=3D#00ffff>}</FONT> *=3D <FONT =
color=3D#cdcd00>1.035</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@peons</FONT>   =3D <FONT =
color=3D#ff7f50>grep</FONT> <FONT color=3D#00ffff>{</FONT> $_-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>TITLE</FONT><FONT =
color=3D#00ffff>}</FONT> =3D~ /peon/i <FONT color=3D#00ffff>}</FONT> =
<FONT color=3D#cdad00>@employees</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@tsevens</FONT> =3D <FONT =
color=3D#ff7f50>grep</FONT> <FONT color=3D#00ffff>{</FONT> $_-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>AGE</FONT><FONT =
color=3D#00ffff>}</FONT>   =3D=3D <FONT color=3D#cdcd00>27</FONT> <FONT =
color=3D#00ffff>}</FONT>      <FONT =
color=3D#cdad00>@employees</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
# Go through all records
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$rp</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>sort</FONT> <FONT color=3D#00ffff>{</FONT> $a-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>AGE</FONT><FONT =
color=3D#00ffff>}</FONT> &lt;=3D&gt; $b-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>AGE</FONT><FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#98fb98>values</FONT> <FONT color=3D#cdcd00>%byname</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>printf</FONT> <FONT =
color=3D#00cd00>"</FONT><FONT color=3D#cdcd00>%s</FONT><FONT =
color=3D#00cd00> is age </FONT><FONT color=3D#cdcd00>%d</FONT><FONT =
color=3D#00cd00>.\n"</FONT>, $rp-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>NAME</FONT><FONT color=3D#00ffff>}</FONT>, $rp-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>AGE</FONT><FONT =
color=3D#00ffff>};</FONT>
    <FONT color=3D#bebebe># or with a hash slice on the reference
</FONT>    <FONT color=3D#ff7f50>printf</FONT> <FONT =
color=3D#00cd00>"</FONT><FONT color=3D#cdcd00>%s</FONT><FONT =
color=3D#00cd00> is employee number </FONT><FONT =
color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00>.\n"</FONT>, <FONT =
color=3D#9ac0cd>@$rp</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>'NAME'</FONT>,<FONT color=3D#00cd00>'EMPNO'</FONT><FONT =
color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# use </FONT><FONT color=3D#cdad00>@byage</FONT><FONT color=3D#bebebe>, =
an array of arrays of records
</FONT><FONT color=3D#ff7f50>push</FONT> @<FONT color=3D#00ffff>{</FONT> =
<FONT color=3D#cdad00>$byage</FONT><FONT color=3D#00ffff>[</FONT> =
$record-&gt;<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>AGE</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>]</FONT> <FONT color=3D#00ffff>}</FONT>, $record<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(</FONT>$age =3D <FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>;</FONT> $age &lt;=3D <FONT =
color=3D#cdad00>$#byage</FONT><FONT color=3D#00ffff>;</FONT> $age++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>next</FONT> <FONT =
color=3D#ffa500>unless</FONT> <FONT color=3D#cdad00>$byage</FONT><FONT =
color=3D#00ffff>[</FONT>$age<FONT color=3D#00ffff>];</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Age $age: =
"</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$rp</FONT> <FONT color=3D#00ffff>(</FONT>@<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#cdad00>$byage</FONT><FONT =
color=3D#00ffff>[</FONT>$age<FONT color=3D#00ffff>]})</FONT> <FONT =
color=3D#00ffff>{</FONT>
        <FONT color=3D#ff7f50>print</FONT> $rp-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>NAME</FONT><FONT =
color=3D#00ffff>}</FONT>, <FONT color=3D#00cd00>" "</FONT><FONT =
color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(</FONT>$age =3D <FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>;</FONT> $age &lt;=3D <FONT =
color=3D#cdad00>$#byage</FONT><FONT color=3D#00ffff>;</FONT> $age++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>next</FONT> <FONT =
color=3D#ffa500>unless</FONT> <FONT color=3D#cdad00>$byage</FONT><FONT =
color=3D#00ffff>[</FONT>$age<FONT color=3D#00ffff>];</FONT>
    <FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"Age =
</FONT><FONT color=3D#cdcd00>%d:</FONT><FONT color=3D#00cd00> =
</FONT><FONT color=3D#cdcd00>%s</FONT><FONT color=3D#00cd00>\n"</FONT>, =
$age,
        <FONT color=3D#98fb98>join</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>", "</FONT>, <FONT =
color=3D#ff7f50>map</FONT> <FONT color=3D#00ffff>{</FONT>$_-&gt;<FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>NAME</FONT><FONT =
color=3D#00ffff>}}</FONT> @<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#cdad00>$byage</FONT><FONT color=3D#00ffff>[</FONT>$age<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=3DAEN622>Reading and Writing Hash Records to =
Text=20
Files</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -