📄 arrays.mht
字号:
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 <=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->[$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 <=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->[$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 <=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 + -