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

📄 arrays.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
</FONT>Time Flies Like An Arrow

Fruit Flies Like A Banana
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN200>Reversing an Array</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>#-----------------------------
# reverse </FONT><FONT color=3D#cdad00>@ARRAY</FONT><FONT =
color=3D#bebebe> into </FONT><FONT color=3D#cdad00>@REVERSED</FONT><FONT =
color=3D#bebebe>
</FONT><FONT color=3D#cdad00>@REVERSED</FONT> =3D <FONT =
color=3D#98fb98>reverse</FONT> <FONT color=3D#cdad00>@ARRAY</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =
=3D <FONT color=3D#cdad00>$#ARRAY</FONT><FONT color=3D#00ffff>;</FONT> =
$i &gt;=3D <FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT> =
$i--<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># do something with </FONT><FONT =
color=3D#cdad00>$ARRAY</FONT><FONT color=3D#bebebe>[$i]
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# two-step: sort then reverse
</FONT><FONT color=3D#cdad00>@ascending</FONT> =3D <FONT =
color=3D#ff7f50>sort</FONT> <FONT color=3D#00ffff>{</FONT> $a <FONT =
color=3D#98fb98>cmp</FONT> $b <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#cdad00>@users</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@descending</FONT> =3D <FONT =
color=3D#98fb98>reverse</FONT> <FONT =
color=3D#cdad00>@ascending</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># one-step: sort with reverse comparison
</FONT><FONT color=3D#cdad00>@descending</FONT> =3D <FONT =
color=3D#ff7f50>sort</FONT> <FONT color=3D#00ffff>{</FONT> $b <FONT =
color=3D#98fb98>cmp</FONT> $a <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#cdad00>@users</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=3DAEN203>Processing Multiple Elements of an =
Array</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>#-----------------------------
# remove $N elements from front of </FONT><FONT =
color=3D#cdad00>@ARRAY</FONT><FONT color=3D#bebebe> (shift $N)
</FONT><FONT color=3D#cdad00>@FRONT</FONT> =3D <FONT =
color=3D#ff7f50>splice</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ARRAY</FONT>, <FONT color=3D#cdcd00>0</FONT>, $N<FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#bebebe># remove $N elements from the end of the array =
(pop $N)
</FONT><FONT color=3D#cdad00>@END</FONT> =3D <FONT =
color=3D#ff7f50>splice</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ARRAY</FONT>, -$N<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>shift2</FONT> <FONT color=3D#00ffff>(</FONT>\@<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>return</FONT> <FONT =
color=3D#ff7f50>splice</FONT><FONT color=3D#00ffff>(</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>, <FONT color=3D#cdcd00>0</FONT>, <FONT =
color=3D#cdcd00>2</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>pop2</FONT> <FONT =
color=3D#00ffff>(</FONT>\@<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>return</FONT> <FONT =
color=3D#ff7f50>splice</FONT><FONT color=3D#00ffff>(</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>, <FONT color=3D#cdcd00>-2</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@friends</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Peter Paul Mary =
Jim Tim<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>(</FONT>$this, $that<FONT color=3D#00ffff>)</FONT> =
=3D shift2<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@friends</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe># $this contains Peter, $that has Paul, and
# </FONT><FONT color=3D#cdad00>@friends</FONT><FONT color=3D#bebebe> has =
Mary, Jim, and Tim
</FONT>
<FONT color=3D#cdad00>@beverages</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Dew Jolt Cola =
Sprite Fresca<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@pair</FONT> =3D pop2<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@beverages</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe># </FONT><FONT color=3D#cdad00>$pair</FONT><FONT =
color=3D#bebebe>[0] contains Sprite, </FONT><FONT =
color=3D#cdad00>$pair</FONT><FONT color=3D#bebebe>[1] has Fresca,
# and </FONT><FONT color=3D#cdad00>@beverages</FONT><FONT =
color=3D#bebebe> has (Dew, Jolt, Cola)
#-----------------------------
</FONT><FONT color=3D#cdad00>$line</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>5</FONT><FONT =
color=3D#00ffff>]</FONT> =3D \<FONT color=3D#cdad00>@list</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@got</FONT> =3D pop2<FONT color=3D#00ffff>(</FONT> =
@<FONT color=3D#00ffff>{</FONT> <FONT color=3D#cdad00>$line</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>5</FONT><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=3DAEN206>Finding the First List Element That =
Passes a=20
Test</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>my</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#9ac0cd>$match</FONT>, <FONT =
color=3D#9ac0cd>$found</FONT>, <FONT color=3D#9ac0cd>$item</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$item</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@array</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$criterion<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
        $match =3D $item<FONT color=3D#00ffff>;</FONT>  <FONT =
color=3D#bebebe># must save
</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>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$found<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe>## do something with $match
</FONT><FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe>## unfound
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>my</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#9ac0cd>$i</FONT>, <FONT =
color=3D#9ac0cd>$match_idx</FONT><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#cdad00>@array</FONT><FONT color=3D#00ffff>;</FONT> =
$i++<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$criterion<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
        $match_idx =3D $i<FONT color=3D#00ffff>;</FONT>    <FONT =
color=3D#bebebe># save the index
</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>if</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>defined</FONT> $match_idx<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe>## found in </FONT><FONT =
color=3D#cdad00>$array</FONT><FONT color=3D#bebebe>[$match_idx]
</FONT><FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe>## unfound
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$employee</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@employees</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT> =
$employee-&gt;category<FONT color=3D#00ffff>()</FONT> <FONT =
color=3D#98fb98>eq</FONT> <FONT color=3D#00cd00>'engineer'</FONT> <FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
        $highest_engineer =3D $employee<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#ff7f50>print</FONT> <FONT color=3D#00cd00>"Highest paid =
engineer is: "</FONT>, $highest_engineer-&gt;name<FONT =
color=3D#00ffff>()</FONT>, <FONT color=3D#00cd00>"\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</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#cdad00>@ARRAY</FONT><FONT color=3D#00ffff>;</FONT> =
$i++<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>last</FONT> <FONT color=3D#ffa500>if</FONT> =
$criterion<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT>$i &lt; =
<FONT color=3D#cdad00>@ARRAY</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe>## found and $i is the index
</FONT><FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe>## not found
</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=3DAEN209>Finding All Elements in an Array =
Matching Certain=20
Criteria</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#cdad00>@MATCHING</FONT> =3D <FONT =
color=3D#ff7f50>grep</FONT> <FONT color=3D#00ffff>{</FONT> TEST <FONT =
color=3D#00ffff>(</FONT>$_<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#cdad00>@LIST</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@matching</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@list</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>push</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@matching</FONT>, $_<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#ffa500>if</FONT> TEST <FONT color=3D#00ffff>(</FONT>$_<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@bigs</FONT> =3D <FONT =
color=3D#ff7f50>grep</FONT> <FONT color=3D#00ffff>{</FONT> $_ &gt; <FONT =
color=3D#cdcd00>1</FONT>_<FONT color=3D#cdcd00>000</FONT>_<FONT =
color=3D#cdcd00>000</FONT> <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#cdad00>@nums</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@pigs</FONT> =3D <FONT color=3D#ff7f50>grep</FONT> =
<FONT color=3D#00ffff>{</FONT> <FONT color=3D#cdcd00>$users</FONT><FONT =
color=3D#00ffff>{</FONT>$_<FONT color=3D#00ffff>}</FONT> &gt; 1e

⌨️ 快捷键说明

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