?? 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 + -