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

📄 referencesandrecords.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
color=3D#00ffff>{</FONT>$array_<FONT color=3D#98fb98>ref</FONT><FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT><FONT color=3D#43cd80>   </FONT>
    <FONT color=3D#bebebe># $item has data
</FONT><FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$idx =3D =
<FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT> $idx =
&lt;=3D $#<FONT color=3D#00ffff>{</FONT> $array_<FONT =
color=3D#98fb98>ref</FONT> <FONT color=3D#00ffff>};</FONT> $idx++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT><FONT =
color=3D#43cd80>  </FONT>
    <FONT color=3D#bebebe># $array_ref-&gt;[$idx] has data
</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=3DAEN598>Making Hashes of Arrays</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#ff7f50>push</FONT><FONT =
color=3D#00ffff>(</FONT>@<FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#cdcd00>$hash</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>"KEYNAME"</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>}</FONT>, <FONT color=3D#00cd00>"new value"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$string</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>keys</FONT> <FONT color=3D#cdcd00>%hash</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"$string: =
@{</FONT><FONT color=3D#cdcd00>$hash</FONT><FONT =
color=3D#00cd00>{$string}}\n"</FONT><FONT color=3D#00ffff>;</FONT><FONT =
color=3D#43cd80> </FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>$hash</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"a key"</FONT><FONT =
color=3D#00ffff>}</FONT> =3D <FONT color=3D#00ffff>[</FONT> <FONT =
color=3D#cdcd00>3</FONT>, <FONT color=3D#cdcd00>4</FONT>, <FONT =
color=3D#cdcd00>5</FONT> <FONT color=3D#00ffff>];</FONT>       <FONT =
color=3D#bebebe># anonymous array
#-----------------------------
</FONT><FONT color=3D#cdad00>@values</FONT> =3D @<FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#cdcd00>$hash</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"a key"</FONT><FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>push</FONT> @<FONT color=3D#00ffff>{</FONT> =
<FONT color=3D#cdcd00>$hash</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>"a key"</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>}</FONT>, $value<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@residents</FONT> =3D @<FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#cdcd00>$phone2name</FONT><FONT =
color=3D#00ffff>{</FONT>$number<FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>};</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@residents</FONT> =3D <FONT =
color=3D#ff7f50>exists</FONT><FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#cdcd00>$phone2name</FONT><FONT =
color=3D#00ffff>{</FONT>$number<FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>)</FONT>
                ? @<FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#cdcd00>$phone2name</FONT><FONT =
color=3D#00ffff>{</FONT>$number<FONT color=3D#00ffff>}</FONT> <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=3DAEN601>Taking References to Hashes</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>$href =3D \<FONT color=3D#cdcd00>%hash</FONT><FONT =
color=3D#00ffff>;</FONT>
$anon_hash =3D <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#00cd00>"key1"</FONT> =3D&gt; <FONT =
color=3D#00cd00>"value1"</FONT>, <FONT color=3D#00cd00>"key2"</FONT> =
=3D&gt; <FONT color=3D#00cd00>"value2"</FONT>, ... <FONT =
color=3D#00ffff>};</FONT>
$anon_hash_copy =3D <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#cdcd00>%hash</FONT> <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%hash</FONT>  =3D %$href<FONT =
color=3D#00ffff>;</FONT>
$value =3D $href-&gt;<FONT color=3D#00ffff>{</FONT>$key<FONT =
color=3D#00ffff>};</FONT>
<FONT color=3D#cdad00>@slice</FONT> =3D <FONT =
color=3D#9ac0cd>@$href</FONT><FONT color=3D#00ffff>{</FONT>$key1, $key2, =
$key3<FONT color=3D#00ffff>};</FONT>  <FONT color=3D#bebebe># note: no =
arrow!
</FONT><FONT color=3D#cdad00>@keys</FONT>  =3D <FONT =
color=3D#ff7f50>keys</FONT> %$href<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#98fb98>ref</FONT><FONT =
color=3D#00ffff>(</FONT>$someref<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#98fb98>ne</FONT> <FONT color=3D#00cd00>'HASH'</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"Expected a =
hash reference, not $someref\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$href</FONT> <FONT color=3D#00ffff>(</FONT> \<FONT =
color=3D#cdcd00>%ENV</FONT>, \<FONT color=3D#cdcd00>%INC</FONT> <FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>       <FONT =
color=3D#bebebe># OR: for $href ( \(</FONT><FONT =
color=3D#cdcd00>%ENV</FONT><FONT color=3D#bebebe>,</FONT><FONT =
color=3D#cdcd00>%INC</FONT><FONT color=3D#bebebe>) ) {
</FONT>    <FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$key</FONT> <FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#ff7f50>keys</FONT> %$href <FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
        <FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"$key =
=3D&gt; $href-&gt;{$key}\n"</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@values</FONT> =3D <FONT =
color=3D#9ac0cd>@$hash_ref</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>"key1"</FONT>, <FONT color=3D#00cd00>"key2"</FONT>, =
<FONT color=3D#00cd00>"key3"</FONT><FONT color=3D#00ffff>};</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#9ac0cd>$val</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#9ac0cd>@$hash_ref</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>"key1"</FONT>, <FONT =
color=3D#00cd00>"key2"</FONT>, <FONT color=3D#00cd00>"key3"</FONT><FONT =
color=3D#00ffff>})</FONT> <FONT color=3D#00ffff>{</FONT>
    $val +=3D <FONT color=3D#cdcd00>7</FONT><FONT =
color=3D#00ffff>;</FONT>   <FONT color=3D#bebebe># add 7 to each value =
in hash slice
</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=3DAEN604>Taking References to =
Functions</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>$cref =3D \&amp;func<FONT color=3D#00ffff>;</FONT>
$cref =3D <FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#00ffff>{</FONT> ... <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@returned</FONT> =3D $cref-&gt;<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@arguments</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@returned</FONT> =3D &amp;$cref<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@arguments</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$funcname =3D <FONT color=3D#00cd00>"thefunc"</FONT><FONT =
color=3D#00ffff>;</FONT>
&amp;$funcname<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#cdcd00>%commands</FONT> =3D <FONT color=3D#00ffff>(</FONT>
    <FONT color=3D#00cd00>"happy"</FONT> =3D&gt; \&amp;joy,
    <FONT color=3D#00cd00>"sad"</FONT>   =3D&gt; \&amp;sullen,
    <FONT color=3D#00cd00>"done"</FONT>  =3D&gt; <FONT =
color=3D#ffa500>sub</FONT> <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"See ya!"</FONT> <FONT =
color=3D#00ffff>}</FONT>,
    <FONT color=3D#00cd00>"mad"</FONT>   =3D&gt; \&amp;angry,
<FONT color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"How are you? =
"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>chomp</FONT><FONT color=3D#00ffff>(</FONT>$string =
=3D &lt;STDIN&gt;<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>$commands</FONT><FONT =
color=3D#00ffff>{</FONT>$string<FONT color=3D#00ffff>})</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#cdcd00>$commands</FONT><FONT =
color=3D#00ffff>{</FONT>$string<FONT color=3D#00ffff>}</FONT>-&gt;<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"No such =
command: $string\n"</FONT><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>counter_maker</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$start</FONT> =
=3D <FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>return</FONT> <FONT color=3D#ffa500>sub</FONT> =
<FONT color=3D#00ffff>{</FONT>                      <FONT =
color=3D#bebebe># this is a closure
</FONT>        <FONT color=3D#ffa500>return</FONT> $start++<FONT =
color=3D#00ffff>;</FONT>              <FONT color=3D#bebebe># lexical =
from enclosing scope
</FONT>    <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT>

$counter =3D counter_maker<FONT color=3D#00ffff>();</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =3D =
<FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT> $i &lt; =
<FONT color=3D#cdcd00>5</FONT><FONT color=3D#00ffff>;</FONT> $i ++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> &amp;$counter, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$counter1 =3D counter_maker<FONT color=3D#00ffff>();</FONT>
$counter2 =3D counter_maker<FONT color=3D#00ffff>();</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =3D =
<FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT> $i &lt; =
<FONT color=3D#cdcd00>5</FONT><FONT color=3D#00ffff>;</FONT> $i ++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> &amp;$counter1, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ff7f50>print</FONT> &amp;$counter1, <FONT =
color=3D#00cd00>" "</FONT>, &amp;$counter2, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdcd00>0</FONT>

<FONT color=3D#cdcd00>1</FONT>

<FONT color=3D#cdcd00>2</FONT>

<FONT color=3D#cdcd00>3</FONT>

<FONT color=3D#cdcd00>4</FONT>

<FONT color=3D#cdcd00>5</FONT> <FONT color=3D#cdcd00>0</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>timestamp</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> $start_<FONT =
color=3D#98fb98>time</FONT> =3D <FONT color=3D#98fb98>time</FONT><FONT =
color=3D#00ffff>();</FONT><FONT color=3D#43cd80> </FONT>
    <FONT color=3D#ffa500>return</FONT> <FONT color=3D#ffa500>sub</FONT> =
<FONT color=3D#00ffff>{</FONT> <FONT color=3D#ffa500>return</FONT> <FONT =
color=3D#98fb98>time</FONT><FONT color=3D#00ffff>()</FONT> - =
$start_<FONT color=3D#98fb98>time</FONT> <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>

⌨️ 快捷键说明

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