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

📄 arrays.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
color=3D#cdad00>@a</FONT><FONT color=3D#bebebe> and </FONT><FONT =
color=3D#cdad00>@b</FONT><FONT color=3D#bebebe> by seven
</FONT><FONT color=3D#cdad00>@a</FONT> =3D <FONT =
color=3D#00ffff>(</FONT> .<FONT color=3D#cdcd00>5</FONT>, <FONT =
color=3D#cdcd00>3</FONT> <FONT color=3D#00ffff>);</FONT> <FONT =
color=3D#cdad00>@b</FONT> =3D<FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#cdcd00>0</FONT>, <FONT color=3D#cdcd00>1</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>@a</FONT>, <FONT =
color=3D#cdad00>@b</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    $item *=3D <FONT color=3D#cdcd00>7</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"</FONT><FONT =
color=3D#cdad00>@a</FONT><FONT color=3D#00cd00> </FONT><FONT =
color=3D#cdad00>@b</FONT><FONT color=3D#00cd00>\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#cdcd00>3.5</FONT> <FONT color=3D#cdcd00>21</FONT> <FONT =
color=3D#cdcd00>0</FONT> <FONT color=3D#cdcd00>7</FONT>
<FONT color=3D#bebebe>#-----------------------------
# trim whitespace in the scalar, the array, and all the values
# in the hash
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#00ffff>(</FONT>$scalar, <FONT color=3D#cdad00>@array</FONT>, =
<FONT color=3D#cdcd00>@hash</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>s</FONT>/^\s+//<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ff7f50>s</FONT>/\s+$//<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>for</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#bebebe># same as foreach $item =
(</FONT><FONT color=3D#cdad00>@array</FONT><FONT color=3D#bebebe>)
</FONT>    <FONT color=3D#bebebe># do something
</FONT><FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ffa500>for</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#bebebe># same as foreach $_ =
(</FONT><FONT color=3D#cdad00>@array</FONT><FONT color=3D#bebebe>)
</FONT>    <FONT color=3D#bebebe># do something
</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=3DAEN185>Iterating Over an Array by =
Reference</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>#-----------------------------
# iterate over elements of array in $ARRAYREF
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$item</FONT> <FONT =
color=3D#00ffff>(</FONT>@$ARRAYREF<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># do something with $item
</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;=3D =
$#$ARRAYREF<FONT color=3D#00ffff>;</FONT> $i++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># do something with $ARRAYREF-&gt;[$i]
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@fruits</FONT> =3D <FONT =
color=3D#00ffff>(</FONT> <FONT color=3D#00cd00>"Apple"</FONT>, <FONT =
color=3D#00cd00>"Blackberry"</FONT> <FONT color=3D#00ffff>);</FONT>
$fruit_<FONT color=3D#98fb98>ref</FONT> =3D \<FONT =
color=3D#cdad00>@fruits</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$fruit</FONT> =
<FONT color=3D#00ffff>(</FONT>@$fruit_<FONT =
color=3D#98fb98>ref</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"$fruit =
tastes good in a pie.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
Apple tastes good in a pie.

Blackberry tastes good in a pie.
<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;=3D $#$fruit_<FONT =
color=3D#98fb98>ref</FONT><FONT color=3D#00ffff>;</FONT> $i++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"$fruit_ref-&gt;[$i] tastes good in a =
pie.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>$namelist</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>felines</FONT><FONT =
color=3D#00ffff>}</FONT> =3D \<FONT =
color=3D#cdad00>@rogue_cats</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$cat</FONT> =
<FONT color=3D#00ffff>(</FONT> @<FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#cdcd00>$namelist</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>felines</FONT><FONT color=3D#00ffff>}</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>"$cat purrs =
hypnotically..\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"--More--\nYou =
are controlled.\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;=3D $#<FONT color=3D#00ffff>{</FONT> =
<FONT color=3D#cdcd00>$namelist</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>felines</FONT><FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>};</FONT> $i++<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"</FONT><FONT color=3D#cdcd00>$namelist</FONT><FONT =
color=3D#00cd00>{felines}[$i] purrs hypnotically.\n"</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=3DAEN188>Extracting Unique Elements from a =
List</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#cdcd00>%seen</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#cdad00>@uniq</FONT> =3D <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>@list</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$item<FONT color=3D#00ffff>})</FONT> <FONT =
color=3D#00ffff>{</FONT>
        <FONT color=3D#bebebe># if we get here, we have not seen it =
before
</FONT>        <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$item<FONT color=3D#00ffff>}</FONT> =3D <FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>;</FONT>
        <FONT color=3D#ff7f50>push</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@uniq</FONT>, $item<FONT =
color=3D#00ffff>);</FONT>
    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <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>@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>@uniq</FONT>, $item<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#ffa500>unless</FONT> <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$item<FONT color=3D#00ffff>}</FONT>++<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <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>@list</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    some_func<FONT color=3D#00ffff>(</FONT>$item<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#cdcd00>$seen</FONT><FONT color=3D#00ffff>{</FONT>$item<FONT =
color=3D#00ffff>}</FONT>++<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <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>@list</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$item<FONT color=3D#00ffff>}</FONT>++<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#cdad00>@uniq</FONT> =3D <FONT color=3D#ff7f50>keys</FONT> =
<FONT color=3D#cdcd00>%seen</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#cdad00>@uniqu</FONT> =3D <FONT =
color=3D#ff7f50>grep</FONT> <FONT color=3D#00ffff>{</FONT> ! <FONT =
color=3D#cdcd00>$seen</FONT><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>#-----------------------------
# generate a list of users logged in, removing duplicates
</FONT><FONT color=3D#cdcd00>%ucnt</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>`who`</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>s</FONT>/\s.*\n//<FONT =
color=3D#00ffff>;</FONT>   <FONT color=3D#bebebe># kill from first space =
till end-of-line, yielding username
</FONT>    <FONT color=3D#cdcd00>$ucnt</FONT><FONT =
color=3D#00ffff>{</FONT>$_<FONT color=3D#00ffff>}</FONT>++<FONT =
color=3D#00ffff>;</FONT>  <FONT color=3D#bebebe># record the presence of =
this user
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe># extract and print unique keys
</FONT><FONT color=3D#cdad00>@users</FONT> =3D <FONT =
color=3D#ff7f50>sort</FONT> <FONT color=3D#ff7f50>keys</FONT> <FONT =
color=3D#cdcd00>%ucnt</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"users logged =
in: </FONT><FONT color=3D#cdad00>@users</FONT><FONT =
color=3D#00cd00>\n"</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=3DAEN191>Finding Elements in One Array but Not =

Another</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>#-----------------------------
# assume </FONT><FONT color=3D#cdad00>@A</FONT><FONT color=3D#bebebe> =
and </FONT><FONT color=3D#cdad00>@B</FONT><FONT color=3D#bebebe> are =
already loaded
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>                  <FONT color=3D#bebebe># =
lookup table to test membership of B
</FONT><FONT color=3D#cdad00>@aonly</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>                 <FONT color=3D#bebebe># =
answer
</FONT>
<FONT color=3D#bebebe># build lookup table
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$item</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@B</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$item<FONT color=3D#00ffff>}</FONT> =3D <FONT =
color=3D#cdcd00>1</FONT> <FONT color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe># find only elements in </FONT><FONT =

⌨️ 快捷键说明

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