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

📄 referencesandrecords.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
From: <由 Microsoft Internet Explorer 5 保存>
Subject: References and Records
Date: Wed, 29 Apr 2009 09:27:06 +0800
MIME-Version: 1.0
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pleac.sourceforge.net/pleac_perl/referencesandrecords.html
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>References and Records</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.2900.5659" name=3DGENERATOR><LINK =
title=3DPLEAC-Perl=20
href=3D"index.html" rel=3DHOME><LINK title=3DSubroutines =
href=3D"subroutines.html"=20
rel=3DPREVIOUS><LINK title=3D"Packages, Libraries, and Modules"=20
href=3D"packagesetc.html" rel=3DNEXT></HEAD>
<BODY class=3DSECT1 text=3D#cecece vLink=3D#d5ae83 aLink=3D#0000ff =
link=3D#f5deb3=20
bgColor=3D#4f6f6f>
<DIV class=3DNAVHEADER>
<TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"=20
summary=3D"Header navigation table" border=3D0>
  <TBODY>
  <TR>
    <TH align=3Dmiddle colSpan=3D3>PLEAC-Perl</TH></TR>
  <TR>
    <TD vAlign=3Dbottom align=3Dleft width=3D"10%"><A accessKey=3DP=20
      =
href=3D"http://pleac.sourceforge.net/pleac_perl/subroutines.html">Prev</A=
></TD>
    <TD vAlign=3Dbottom align=3Dmiddle width=3D"80%"></TD>
    <TD vAlign=3Dbottom align=3Dright width=3D"10%"><A accessKey=3DN=20
      =
href=3D"http://pleac.sourceforge.net/pleac_perl/packagesetc.html">Next</A=
></TD></TR></TBODY></TABLE>
<HR align=3Dleft width=3D"100%">
</DIV>
<DIV class=3DSECT1>
<H1 class=3DSECT1><A name=3DREFERENCESANDRECORDS>11. References and =
Records</A></H1>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN592>Introduction</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>print</FONT> $$sref<FONT =
color=3D#00ffff>;</FONT>    <FONT color=3D#bebebe># prints the scalar =
value that the reference $sref refers to
</FONT>$$sref =3D <FONT color=3D#cdcd00>3</FONT><FONT =
color=3D#00ffff>;</FONT>      <FONT color=3D#bebebe># assigns to $sref's =
referent
#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> $<FONT =
color=3D#00ffff>{</FONT>$sref<FONT color=3D#00ffff>};</FONT>             =
<FONT color=3D#bebebe># prints the scalar $sref refers to
</FONT>$<FONT color=3D#00ffff>{</FONT>$sref<FONT =
color=3D#00ffff>}</FONT> =3D <FONT color=3D#cdcd00>3</FONT><FONT =
color=3D#00ffff>;</FONT>               <FONT color=3D#bebebe># assigns =
to $sref's referent
#-----------------------------
</FONT>$aref =3D \<FONT color=3D#cdad00>@array</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$pi =3D \<FONT color=3D#cdcd00>3.14159</FONT><FONT =
color=3D#00ffff>;</FONT>
$$pi =3D <FONT color=3D#cdcd00>4</FONT><FONT color=3D#00ffff>;</FONT>    =
       <FONT color=3D#bebebe># runtime error
#-----------------------------
</FONT>$aref =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># new anonymous array
</FONT>$href =3D <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#00cd00>"How"</FONT> =3D&gt; <FONT color=3D#00cd00>"Now"</FONT>, =
<FONT color=3D#00cd00>"Brown"</FONT> =3D&gt; <FONT =
color=3D#00cd00>"Cow"</FONT> <FONT color=3D#00ffff>};</FONT>       <FONT =
color=3D#bebebe># new anonymous hash
#-----------------------------
</FONT><FONT color=3D#ff7f50>undef</FONT> $aref<FONT =
color=3D#00ffff>;</FONT>
@$aref =3D <FONT color=3D#00ffff>(</FONT><FONT color=3D#cdcd00>1</FONT>, =
<FONT color=3D#cdcd00>2</FONT>, <FONT color=3D#cdcd00>3</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> $aref<FONT color=3D#00ffff>;</FONT>
ARRAY<FONT color=3D#00ffff>(</FONT>0x80c04f0<FONT =
color=3D#00ffff>)</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>$a</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>4</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>23</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>53</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>21</FONT><FONT =
color=3D#00ffff>]</FONT> =3D <FONT color=3D#00cd00>"fred"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#cdad00>$a</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>4</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>23</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>53</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>21</FONT><FONT =
color=3D#00ffff>];</FONT>
fred

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#cdad00>$a</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>4</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>23</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>53</FONT><FONT =
color=3D#00ffff>];</FONT>
ARRAY<FONT color=3D#00ffff>(</FONT>0x81e2494<FONT =
color=3D#00ffff>)</FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#cdad00>$a</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>4</FONT><FONT =
color=3D#00ffff>][</FONT><FONT color=3D#cdcd00>23</FONT><FONT =
color=3D#00ffff>];</FONT>
ARRAY<FONT color=3D#00ffff>(</FONT>0x81e0748<FONT =
color=3D#00ffff>)</FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#cdad00>$a</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>4</FONT><FONT =
color=3D#00ffff>];</FONT>
ARRAY<FONT color=3D#00ffff>(</FONT>0x822cd40<FONT =
color=3D#00ffff>)</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$op_cit =3D cite<FONT color=3D#00ffff>(</FONT>$ibid<FONT =
color=3D#00ffff>)</FONT>       <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"couldn't make a =
reference"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$Nat =3D <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#00cd00>"Name"</FONT>     =3D&gt; <FONT =
color=3D#00cd00>"Leonhard Euler"</FONT>,
         <FONT color=3D#00cd00>"Address"</FONT>  =3D&gt; <FONT =
color=3D#00cd00>"1729 Ramanujan Lane\nMathworld, PI 31416"</FONT>,
         <FONT color=3D#00cd00>"Birthday"</FONT> =3D&gt; 0x5bb5580,
       <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=3DAEN595>Taking References to 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>$aref               =3D \<FONT color=3D#cdad00>@array</FONT><FONT =
color=3D#00ffff>;</FONT>
$anon_array         =3D <FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>1</FONT>, <FONT color=3D#cdcd00>3</FONT>, <FONT =
color=3D#cdcd00>5</FONT>, <FONT color=3D#cdcd00>7</FONT>, <FONT =
color=3D#cdcd00>9</FONT><FONT color=3D#00ffff>];</FONT>
$anon_copy          =3D <FONT color=3D#00ffff>[</FONT> <FONT =
color=3D#cdad00>@array</FONT> <FONT color=3D#00ffff>];</FONT>
@$implicit_creation =3D <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>2</FONT>, <FONT color=3D#cdcd00>4</FONT>, <FONT =
color=3D#cdcd00>6</FONT>, <FONT color=3D#cdcd00>8</FONT>, <FONT =
color=3D#cdcd00>10</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>push</FONT><FONT =
color=3D#00ffff>(</FONT>@$anon_array, <FONT =
color=3D#cdcd00>11</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$two =3D $implicit_creation-&gt;<FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>];</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$last_idx  =3D $#$aref<FONT color=3D#00ffff>;</FONT>
$num_items =3D @$aref<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$last_idx  =3D $#<FONT color=3D#00ffff>{</FONT> $aref <FONT =
color=3D#00ffff>};</FONT>
$num_items =3D <FONT color=3D#ff7f50>scalar</FONT> @<FONT =
color=3D#00ffff>{</FONT> $aref <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#bebebe>#-----------------------------
# check whether $someref contains a simple array reference
</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>'ARRAY'</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"Expected an =
array reference, not $someref\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"@{$array_ref}\n"</FONT><FONT color=3D#00ffff>;</FONT>   =
     <FONT color=3D#bebebe># print original data
</FONT>
<FONT color=3D#cdad00>@order</FONT> =3D <FONT =
color=3D#ff7f50>sort</FONT> @<FONT color=3D#00ffff>{</FONT> $array_<FONT =
color=3D#98fb98>ref</FONT> <FONT color=3D#00ffff>};</FONT>  <FONT =
color=3D#bebebe># sort it
</FONT>
<FONT color=3D#ff7f50>push</FONT> @<FONT color=3D#00ffff>{</FONT> =
$array_<FONT color=3D#98fb98>ref</FONT> <FONT color=3D#00ffff>}</FONT>, =
$item<FONT color=3D#00ffff>;</FONT>    <FONT color=3D#bebebe># append =
new element to orig array</FONT><FONT color=3D#43cd80>  </FONT><FONT =
color=3D#bebebe>
#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> array_<FONT =
color=3D#98fb98>ref</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#cdad00>@array</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>return</FONT> \<FONT =
color=3D#cdad00>@array</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

$aref1 =3D array_<FONT color=3D#98fb98>ref</FONT><FONT =
color=3D#00ffff>();</FONT>
$aref2 =3D array_<FONT color=3D#98fb98>ref</FONT><FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> $array_<FONT =
color=3D#98fb98>ref</FONT>-&gt;<FONT color=3D#00ffff>[</FONT>$N<FONT =
color=3D#00ffff>];</FONT>         <FONT color=3D#bebebe># access item in =
position N (best)
</FONT><FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#9ac0cd>$$array_ref</FONT><FONT color=3D#00ffff>[</FONT>$N<FONT =
color=3D#00ffff>];</FONT>          <FONT color=3D#bebebe># same, but =
confusing
</FONT><FONT color=3D#ff7f50>print</FONT> $<FONT =
color=3D#00ffff>{</FONT>$array_<FONT color=3D#98fb98>ref</FONT><FONT =
color=3D#00ffff>}[</FONT>$N<FONT color=3D#00ffff>];</FONT>        <FONT =
color=3D#bebebe># same, but still confusing, and ugly to boot
#-----------------------------
</FONT><FONT color=3D#9ac0cd>@$pie</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>3</FONT>..<FONT =
color=3D#cdcd00>5</FONT><FONT color=3D#00ffff>];</FONT>                  =
  <FONT color=3D#bebebe># array slice, but a little confusing to read
</FONT>@<FONT color=3D#00ffff>{</FONT>$pie<FONT =
color=3D#00ffff>}[</FONT><FONT color=3D#cdcd00>3</FONT>..<FONT =
color=3D#cdcd00>5</FONT><FONT color=3D#00ffff>];</FONT>                  =
<FONT color=3D#bebebe># array slice, easier (?) to read
#-----------------------------
</FONT>@<FONT color=3D#00ffff>{</FONT>$pie<FONT =
color=3D#00ffff>}[</FONT><FONT color=3D#cdcd00>3</FONT>..<FONT =
color=3D#cdcd00>5</FONT><FONT color=3D#00ffff>]</FONT> =3D <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"blackberry"</FONT>, <FONT =
color=3D#00cd00>"blueberry"</FONT>, <FONT =
color=3D#00cd00>"pumpkin"</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$sliceref =3D \@<FONT color=3D#00ffff>{</FONT>$pie<FONT =
color=3D#00ffff>}[</FONT><FONT color=3D#cdcd00>3</FONT>..<FONT =
color=3D#cdcd00>5</FONT><FONT color=3D#00ffff>];</FONT>     <FONT =
color=3D#bebebe># WRONG!
#-----------------------------
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$item</FONT> <FONT color=3D#00ffff>(</FONT> @<FONT =

⌨️ 快捷键说明

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