📄 packages, libraries, and modules.mht
字号:
From: <由 Microsoft Internet Explorer 5 保存>
Subject: Packages, Libraries, and Modules
Date: Wed, 29 Apr 2009 09:27:14 +0800
MIME-Version: 1.0
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pleac.sourceforge.net/pleac_perl/packagesetc.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>Packages, Libraries, and Modules</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=3D"References and Records"=20
href=3D"referencesandrecords.html" rel=3DPREVIOUS><LINK=20
title=3D"Classes, Objects, and Ties" href=3D"classesetc.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/referencesandrecords.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/classesetc.html">Next</A>=
</TD></TR></TBODY></TABLE>
<HR align=3Dleft width=3D"100%">
</DIV>
<DIV class=3DSECT1>
<H1 class=3DSECT1><A name=3DPACKAGESETC>12. Packages, Libraries, and=20
Modules</A></H1>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN642>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#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Alpha</FONT><FONT color=3D#00ffff>;</FONT>
$name =3D <FONT color=3D#00cd00>"first"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Omega</FONT><FONT color=3D#00ffff>;</FONT>
$name =3D <FONT color=3D#00cd00>"last"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>main</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Alpha is =
$Alpha::name, Omega is $Omega::name.\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
Alpha is first, Omega is <FONT color=3D#ffa500>last</FONT>.
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#00cd00>"FileHandle.pm"</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># run-time load
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>FileHandle</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># ".pm" assumed; same as previous
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>FileHandle</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># compile-time load
</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#00cd00>"Cards/Poker.pm"</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># run-time load
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>Cards::Poker</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># ".pm" assumed; same as previous
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Cards::Poker</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># compile-time load
#-----------------------------
</FONT><FONT color=3D#cdcd00>1</FONT> <FONT =
color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>Cards::Poker</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdcd00>2</FONT> <FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Exporter</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdcd00>3</FONT> <FONT color=3D#cdad00>@ISA</FONT> =3D =
<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'Exporter'</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdcd00>4</FONT> <FONT color=3D#cdad00>@EXPORT</FONT> =
=3D <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>&shuffle <FONT =
color=3D#cdad00>@card_deck</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdcd00>5</FONT> <FONT =
color=3D#cdad00>@card_deck</FONT> =3D <FONT color=3D#00ffff>();</FONT> =
<FONT color=3D#bebebe># initialize package global
</FONT><FONT color=3D#cdcd00>6</FONT> <FONT =
color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>shuffle</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#00ffff>}</FONT> =
<FONT color=3D#bebebe># fill-in definition later
</FONT><FONT color=3D#cdcd00>7</FONT> <FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># don't forget this
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN645>Defining a Module's =
Interface</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>package</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>strict</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>vars</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ISA</FONT> <FONT color=3D#cdad00>@EXPORT</FONT> <FONT =
color=3D#cdad00>@EXPORT_OK</FONT> <FONT =
color=3D#cdcd00>%EXPORT_TAGS</FONT> $VERSION<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Exporter</FONT><FONT color=3D#00ffff>;</FONT>
$VERSION =3D <FONT color=3D#cdcd00>1.00</FONT><FONT =
color=3D#00ffff>;</FONT> <FONT color=3D#bebebe># Or higher
</FONT><FONT color=3D#cdad00>@ISA</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Exporter<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@EXPORT</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>...<FONT =
color=3D#00ffff>);</FONT> <FONT color=3D#bebebe># Symbols to =
autoexport (:DEFAULT tag)
</FONT><FONT color=3D#cdad00>@EXPORT_OK</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>...<FONT =
color=3D#00ffff>);</FONT> <FONT color=3D#bebebe># Symbols to =
export on request
</FONT><FONT color=3D#cdcd00>%EXPORT_TAGS</FONT> =3D <FONT =
color=3D#00ffff>(</FONT> <FONT color=3D#bebebe># Define =
names for sets of symbols
</FONT> <FONT color=3D#00cd00>TAG1</FONT> =3D> <FONT =
color=3D#00ffff>[</FONT>...<FONT color=3D#00ffff>]</FONT>,
<FONT color=3D#00cd00>TAG2</FONT> =3D> <FONT =
color=3D#00ffff>[</FONT>...<FONT color=3D#00ffff>]</FONT>,
...
<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>########################
# your code goes here
########################
</FONT>
<FONT color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># this should be your last line
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># Import default symbols into my package.
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>...<FONT color=3D#00ffff>);</FONT> <FONT =
color=3D#bebebe># Import listed symbols into my package.
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT> <FONT color=3D#00ffff>();</FONT> =
<FONT color=3D#bebebe># Do not import any symbols
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>:TAG1<FONT color=3D#00ffff>);</FONT> <FONT =
color=3D#bebebe># Import whole tag set
#-----------------------------
</FONT> <FONT color=3D#cdad00>@EXPORT</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>&F1 &F2 =
<FONT color=3D#cdad00>@List</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@EXPORT</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT> F1 F2 <FONT =
color=3D#cdad00>@List</FONT><FONT color=3D#00ffff>);</FONT> <FONT =
color=3D#bebebe># same thing
#-----------------------------
</FONT> <FONT color=3D#cdad00>@EXPORT_OK</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Op_Func <FONT =
color=3D#cdcd00>%Table</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT> <FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>Op_Func <FONT color=3D#cdcd00>%Table</FONT> =
F1<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT> <FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>:DEFAULT <FONT =
color=3D#cdcd00>%Table</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT> <FONT color=3D#cdcd00>%EXPORT_TAGS</FONT> =3D <FONT =
color=3D#00ffff>(</FONT>
<FONT color=3D#00cd00>Functions</FONT> =3D> <FONT =
color=3D#00ffff>[</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>F1 F2 Op_Func<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>]</FONT>,
<FONT color=3D#00cd00>Variables</FONT> =3D> <FONT =
color=3D#00ffff>[</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@List</FONT> <FONT =
color=3D#cdcd00>%Table</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>]</FONT>,
<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT> <FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>YourModule</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>:Functions <FONT =
color=3D#cdcd00>%Table</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT> @<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#43cd80> </FONT>
<FONT color=3D#cdcd00>$YourModule::EXPORT_TAGS</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>Functions</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></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN648>Trapping Errors in require or =
use</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>#-----------------------------
# no import
</FONT><FONT color=3D#ffa500>BEGIN</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ffa500>eval</FONT> <FONT =
color=3D#00cd00>"require $mod"</FONT><FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#98fb98>warn</FONT> <FONT =
color=3D#00cd00>"couldn't load $mod: $@"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe># imports into current package
</FONT><FONT color=3D#ffa500>BEGIN</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ffa500>eval</FONT> <FONT =
color=3D#00cd00>"use $mod"</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#98fb98>warn</FONT> <FONT =
color=3D#00cd00>"couldn't load $mod: $@"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>BEGIN</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#9ac0cd>$found</FONT>, <FONT color=3D#cdad00>@DBs</FONT>, <FONT =
color=3D#9ac0cd>$mod</FONT><FONT color=3D#00ffff>);</FONT>
$found =3D <FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@DBs</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Giant::Eenie =
Giant::Meanie Mouse::Mynie Moe<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#9ac0cd>$mod</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@DBs</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#ffa500>eval</FONT> <FONT =
color=3D#00cd00>"require $mod"</FONT><FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>{</FONT>
$mod->
import
<FONT color=3D#00ffff>();</FONT> <FONT color=3D#bebebe># if =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -