目前分類:perl程式 (36)

瀏覽方式: 標題列表 簡短摘要
expand函式:幾個space替代tab。
unexpand函式:tab替代幾個space。

use Text:Tabs;
use strict;

jck11 發表在 痞客邦 留言(0) 人氣()

wrap一次掃瞄一個段落,將它們以字為單位輸出。如果一個字超過輸出的寬度,wrap會根據輸出的寬度斷字,再將剩下的字母接到下一行。
use Text::Wrap qw(wrap $columns);
$columns=72;
die "usage: $0 file" unless @ARGV;
my $file=shift;

jck11 發表在 痞客邦 留言(0) 人氣()

Win32::ChangeNotify函式允許程式去監視一個目錄或是目錄樹,程式如下:
一、產生一個Win32::ChangeNotify物件,並且將要監視的目錄與過濾字串(filter string:這個過濾字串包括會觸發通知notification的事件)當作參數傳遞給此物件的建構子。
二、使用wait方法去開啟監視。
三、檢查wait傳回的值看看是否運算的時間已經超過,還是某些「通知」已經顯示。
use Win32::ChangeNotify;

jck11 發表在 痞客邦 留言(0) 人氣()

Win32::FileSecurity模組允許程式去裡理Windows NT處理檔案和目錄的security descriptor。此模組只能在Windows NT上執行,且只有在支援NT安全模組的地方使用檔案和目錄才會成功。
Get函式取得檔案和目錄的存取控制列表(Discretionary Access Control List, DACL)。Get的參數是一個指向雜湊的參考,執行後會在雜湊中存入帳戶名稱以及一些由存取旗標位元遮罩所組成的值。
Set函式的參數是一個檔案或目錄名稱,以及一個儲存帳戶名稱與相對應的位元遮罩的雜湊表。Get和Set都受於使用者本身的權限。
EnumerateRights函式轉換一個位元遮罩到一個陣列。
MakeMask函式轉換一個儲存權限的串列成位元遮罩。

jck11 發表在 痞客邦 留言(0) 人氣()

Win32::File提供兩個函式來處理檔案的屬性:GetAtrributes和SetAttributes,分別包裝了Win32 API:GetFileAttributes和SetFileAttributes。
use Win32::File;
use strict;
my $file=shift || die "need a filename\n";
my $attribs=1;

jck11 發表在 痞客邦 留言(0) 人氣()

File::Recurse可以對在樹中的每一個檔案和目錄進行遞迴操作,並且對每一個找到的檔案和目錄呼叫使用者支援的副常式(File::Find模組也有相同的功能)。
以下示範清除不要的副檔名檔案
use File::Recurse;
use strict;
my $kill_rx=q(\.obj$|\.pch$|\.pdb$);

jck11 發表在 痞客邦 留言(0) 人氣()

檔案路徑可分為:位置、檔案、副檔名。以c:\perl\bin\perl.exe來說,位置是指c:\perl\bin,檔案名稱為perl,副檔名指.exe。
預設情況下,File::Basename假設你用的是Unix型態的路徑名稱,但可經由呼叫fileparse_set_fstype來改變檔案指定,可用的引數包括VMS, MSDOS, MacOS, AmigaOS, MSWin32。
File::Basename中常用的方法有fileparse, basename, dirname。
fileparse方法會傳回包含路徑名稱三個部份的串列。
basename方法傳回路徑位置。

jck11 發表在 痞客邦 留言(0) 人氣()

File::Copy提供copy及move兩種方法來拷貝及移動檔案。
copy函式需要兩個參數,參數可以是字串或filehandle參考。
use File::Copy;
use strict;
usage() unless @ARGV == 2;

jck11 發表在 痞客邦 留言(0) 人氣()

perl程式的引數會被放在@ARGV這個陣列中,而程式名稱會被放在$0這個特殊變數裡。
我們可以很簡單的用
$ARGV[0]取得第一個引數
$ARGV[1]取得第二個引數
依此類推

jck11 發表在 痞客邦 留言(2) 人氣()

下面文章是「Perl食譜」這本書前的代序,由Perl之父Larry Wall所寫的。這個序很有趣,他說明烹飪和Perl程式語言到底有什麼關係。廚師的定義不應局限於能自己端出一盤菜,能寫出有用的程,在某方面來說也算是個廚師,只是他的食材不一樣。(謎之聲:你該不是為這篇解套吧?)

有人說隱喻(metaphor)的陷阱最是危險。但某些隱喻巧妙異常,就算掉入陷阱也心甘情願。或許烹飪(cooking)就算得上是一個,至少在此的確是如此。我唯一的問題純粹是個人因素使然-我覺的我變得囉裡囉唆。但由於我眼前的工作艱鉅異常,即使我現在無法長話短說,也是情有可原。

反正,這類事情從來都難不倒我。

jck11 發表在 痞客邦 留言(0) 人氣()

當你的留言版留言的人多了的時候
有時可能想要統計一下到底有哪些pixnet的網友們來過你這兒留過言
也許有的好久沒去逛過他們的部落格了
現在用程式把他挖出來
順便聯絡一下感情 :)

jck11 發表在 痞客邦 留言(4) 人氣()

整理一下LWP模組內的各模組名稱及用途

模組名稱:LWP::UserAgent
用途:WWW使用者代理種類

jck11 發表在 痞客邦 留言(0) 人氣()

有時候網頁所連結的內容不見了,除非有人告訴你,否則還真懶得去找,對維護網頁的人來說,應該都會有這樣的一個工具,就是利用程式去幫你找找那個連結的網頁不見,現在我們也來實作一個。
想法是這樣的,先把網頁抓下來,解析網頁內容看看有沒有a標簽,有的話就試著連連看網頁是否還存在。

程式碼
use LWP::Simple;

jck11 發表在 痞客邦 留言(1) 人氣()

LWP::UserAgent是個網頁的代理模組,利用他可以和網頁來進行互動,通常的步驟是
一、建立LWP::UserAgent物件,設定使用者代理程式的型態。
二、建立一個HTTP::Request物件,用來儲存所使用的要求方法(request method)與URL。參考常用的HTTP回應碼
三、使用header方法將必要的標頭加入request物件中。
四、將要求物件傳給使用者代理物件中的request方法,然後解讀與處理傳回的HTTP::Response物件。

jck11 發表在 痞客邦 留言(1) 人氣()

LWP::Simple提供許多簡便的方法讓我們下載網頁,以下介紹幾種
一、getstore, get, getprint
二、head
三、mirror

jck11 發表在 痞客邦 留言(0) 人氣()

URL(Uniform Resource Locator)是一個Internet上的位址。其構成包括四部份
一、協定(ex. http)
二、主機名稱(ex. www.abc.com)
三、埠號(ex. 80)
四、路徑(/abc/index.html)

jck11 發表在 痞客邦 留言(1) 人氣()

«12