Perl語言入門 檔案測試

2021-06-21 22:58:30 字數 2632 閱讀 7812

檔案測試操作符:-e 測試檔案存在與否

die "oops!a file called '$filename' already exists.\n" 

if -e $filename;

-m 測試檔案更新時間(用檔案控制代碼)

warn "config file is looking pretty old \n" if -m config>28;

其他檔案測試操作符功能參考文件

如果檔案測試操作符後面沒寫檔名或檔案控制代碼,預設運算元是$_裡的檔名

foreach(@lots_of_filenames) #即 -r $_

但此時要注意任何接在測試操作符後的都可能被作為測試目標而出錯,因此

最好用括號把檔案測試符括起來,如

my $size_in_k= (-s)/1024;

同一檔案的多項屬性測試:可以用and合併兩項屬性檢查,如if(-r $file and -w $file)

但此時開銷浪費相當大,可以用虛擬檔案控制代碼_,如下

if(-r $file and -w _)

還可以分開寫成

if(-r $file)

if(-w _)

棧式檔案測試操作:perl 5.10允許使用棧式寫法將檔案測試操作符排成一行

if (-w -r $file)

注意執行順序是從右至左,即-r先執行(靠近$file)

stat和lstat函式:檔案測試操作符可以獲取某檔案或檔案控制代碼的各種常用屬性,但只是一部分

stat函式可以獲得檔案所有其他相關資訊

如果stat函式執行失敗,返回空列表,否則返回乙個含13個數字元素列表

my($dev,$ino,$mode,$link,$uid,$gid,$rdev,...)

若需要符號連線符本身的資訊可以用lstat

預設操作符是$_

如thu may 31 09:48:18 2007這樣的字串形式

my $timestamp=1180630098;

my $date= localtime $timestamp;

列表上下文中,返回乙個數字元素組成的列表

my($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst)= localtime $timestamp

其中$yday是一年中的第幾天,1~365

gmtime函式和localtime一樣,只不過返回的是世界標準時間(格林威治標準時間)

從系統時鐘去的當前時間戳,用time函式,gmtime、localtime函式預設使用當前time返回值的時間值

按位運算操作符:10&12=8 (1010&1100=1000)

10|12=14

10^12=6 (異或)

6<<2 (按位左移2位,得24)

25>>2 (按位右移2位,得6)

~10 (按位取反,得0xfffffff5)

使用位字串:如果按位運算操作符任一運算元是字串,則perl會當作位字串處理

"\xaa" | "\x55" 結果是"\xff"

file testing....

-r file is readable by effective uid/gid.

-w file is writable by effective uid/gid.

-x file is executable by effective uid/gid.

-o file is owned by effective uid.

-r file is readable by real uid/gid.

-w file is writable by real uid/gid.

-x file is executable by real uid/gid.

-o file is owned by real uid.

-e file exists.

-z file has zero size.

-s file has nonzero size (returns size).

-f file is a plain file.

-d file is a directory.

-l file is a symbolic link.

-p file is a named pipe (fifo), or filehandle is a pipe.

-s file is a socket.

-b file is a block special file.

-c file is a character special file.

-t filehandle is opened to a tty.

-u file has setuid bit set.

-g file has setgid bit set.

-k file has sticky bit set.

-t file is a text file.

-b file is a binary file (opposite of -t).

-m age of file in days when script started.

-a same for access time.

-c same for inode change time.

Perl檔案測試

運算子 含義 r file 如果 file 可讀,則為真 w file 如果 file 可寫,則為真 x file 如果 file 可執行,則為真 o file 如果 file 的屬主是有效的uid,則為真 e file 如果 file 存在,則為真 z file 如果 file 大小為0,則為真 ...

Perl語言入門 Perl變數簡介

在編寫perl程式時,需要準備好兩樣工具 乙個文字編輯器和乙個perl直譯器,前者用來書寫 後者用來完成程式的編譯 解釋和執行工作。perl變數支援三種基本資料型別 標量 陣列和關聯陣列。1 標量只能儲存單個值 單個字串或單個數字。必須以美元符號 開頭。示例 number 15 name judy ...

perl語言入門筆記

perl記事本 1.yu x 3 print yuyuyu 2.print yu jian s 加 促使變數不會變成 ages 3.4 2 4的平方 4.1.5 1,2,3,4,5 5.qw yu jian s book 簡潔,更少輸入 6.yu,jian jian,yu 值互換 7.yu,jian...