📄 01_4_12_3.asp.html
字号:
12.0pt"><span style="mso-spacerun: yes"> </span><span style="mso-tab-count:
1"> </span><span style="mso-tab-count:1">
</span>$value=~s"'""gi;#</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"">删除~不必要的符号</span><span lang="EN-US" style="font-size:9.0pt;mso-bidi-font-size:12.0pt"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt"><span style="mso-spacerun: yes"> </span><span style="mso-tab-count:
1"> </span><span style="mso-tab-count:1">
</span>$CFG{$name} = $value;#</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"">复制~参数到散列变量</span><span lang="EN-US" style="font-size:9.0pt;mso-bidi-font-size:12.0pt"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt"><span style="mso-tab-count:1">
</span>}<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt"><span style="mso-tab-count:1">
</span><o:p>
</o:p>
</span></p>
<span lang="EN-US" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:
"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:
EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">}</span></td>
</tr>
<tr>
<td width="100%" colspan="2" bgcolor="#C0C0C0"><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;
font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman";mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;
mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">配置文件原形:</span></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">Port='81';<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">IP="127.0.0.1";<o:p>
</o:p>
</span></p>
<span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:
"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:
FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">Listen='5';</span></td>
</tr>
<tr>
<td width="100%" colspan="2" bgcolor="#C0C0C0"><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;
font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman";mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;
mso-ansi-language:FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">调用方法:</span></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">Open_Conf('../Conf/httpd.cfg');#../Conf/httpd.cfg</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-ansi-language:
FR">为路径和文件名</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;
mso-ansi-language:FR"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">$port = $CFG{'Port'};#</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-ansi-language:
FR">将文件原型的</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;
mso-ansi-language:FR">Port</span><span style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman";mso-ansi-language:FR">量复制到</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:FR">$port</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-ansi-language:
FR">上,当然你可以不必这样做,可以直接引</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">HASH<o:p>
</o:p>
</span></p>
<span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:
"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:
FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">$ip = $CFG{'IP'};#</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
"Times New Roman";mso-font-kerning:1.0pt;mso-ansi-language:FR;mso-fareast-language:
ZH-CN;mso-bidi-language:AR-SA">和上面的一样</span></td>
</tr>
</table>
</td></tr></table><table align=center width=620><tr><td class=a14>
这样就解决了配置变量的问题,我想这个函数对某些人一定会有很重要的意义。</td></tr></table><table align=center width=620><tr><td class=a14>
在这里OOP就是use 方式的调用。</td></tr></table><table align=center width=620><tr><td class=a14>
现在我们要着重讨论OOP问题了,如果你不想把一大堆的程序代码写在一个文件中,那么使用OOP就最好了,原来是可以使用require,但这里不可一。OOP在Perl的好处显而易见,首先可以编译,即使不编译,它也同require有明显差异。</td></tr></table><table align=center width=620><tr><td class=a14>
OOP是在程序需要时调入,不需要时自动消失(通常说破坏对象)。require则不然,一旦调入一直存在,除非你使用exit 函数,所以在某些方面影响了程序的效率。</td></tr></table><table align=center width=620><tr><td class=a14>
例如我们要写一个Shell程序,一共需要一下部分:输入/输出(I/O)、命令判断(CMD)、System(系统操作)。</td></tr></table><table align=center width=620><tr><td class=a14>
我们平时也可以使用require,在编译的时候就好了,同样我们虽然可以按照子程序放在一个程序里面,但是在这里只是例子,但是在大宗商业项目中,这样做是显然费时费力的,会增加维护成本,无法联合开发等多种弊端。</td></tr></table><table align=center width=620><tr><td class=a14>
我们把他们分为4个文件3个模块一个主程序(编译):IO.pm、CMD.pm、System.pm、Shell.pl。</td></tr></table><table align=center width=620><tr><td class=a14>
首先要构造对象:</td></tr></table><table align=center width=620><tr><td class=a14>
<table border="1" width="100%">
<tr>
<td width="100%" colspan="2" bgcolor="#C0C0C0"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:
1.0pt;mso-ansi-language:FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">Tanshuai
</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;mso-ansi-language:
FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">对象构造方法:</span></td>
</tr>
<tr>
<td width="18%">
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">L.1<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">2<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">3<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">4<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">5<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">6<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">7<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">8<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">9<o:p>
</o:p>
</span></p>
<span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:
"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:
FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">10</span></td>
<td width="82%">
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">package <</span><span style="font-size:9.0pt;
mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";mso-ansi-language:FR">包名或者对象名</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
FR">>;<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">my %IN;#</span><span style="font-size:9.0pt;
mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";mso-ansi-language:FR">定义~包(对象)内部的散列</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
FR"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR">sub new {#</span><span style="font-size:9.0pt;
mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";mso-ansi-language:FR">构造函数名</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
FR"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR"><span style="mso-tab-count:1">
</span>my $class = shift;<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR"><span style="mso-tab-count:1">
</span>%IN= @_;#</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman";
mso-ansi-language:FR">将调用对象的数值传入散列</span><span lang="FR" style="font-size:9.0pt;
mso-bidi-font-size:12.0pt;mso-ansi-language:FR">IN</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-ansi-language:
FR">中</span><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;
mso-ansi-language:FR"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR"><span style="mso-tab-count:1">
</span>my $self={};<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR"><span style="mso-tab-count:1">
</span>bless $self,$class;<o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;mso-ansi-language:FR"><span style="mso-tab-count:1">
</span>return $self;<o:p>
</o:p>
</span></p>
<span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:
"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:
FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">}</span>
<p> </td>
</tr>
</table>
</td></tr></table><table align=center width=620><tr><td class=a14>
虽然上面的构造有些不好的地方,但是它是通用对象的构造方法,利于调试,如果你认为没程序上的问题,就可以“封包”,适当修改变量传引方式。</td></tr></table><table align=center width=620><tr><td class=a14>
这里的所有对象只有是一个单一函数,只包括:构造对象和操作对象的两个部分,这是一个简单的对象引用,但是这种应用在实际的开发总是相当无畏的,在这里是为了方便教大家,所以不要什么程序都要对象。</td></tr></table><table align=center width=620><tr><td class=a14>
<table border="1" width="100%">
<tr>
<td width="100%" colspan="2" bgcolor="#C0C0C0"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
12.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:
1.0pt;mso-ansi-language:FR;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">IO.pm</span><span style="font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
"Times New Roman";mso-font-kerning:1.0pt;mso-ansi-language:FR;mso-fareast-language:
ZH-CN;mso-bidi-language:AR-SA">:</span></td>
</tr>
<tr>
<td width="17%">
<p class="MsoNormal"><span lang="FR" style="font-size:9.0pt;mso-bidi-font-size:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -