Perl学习笔记.docx
上传人:sy****28 上传时间:2024-09-13 格式:DOCX 页数:12 大小:24KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

Perl学习笔记.docx

Perl学习笔记.docx

预览

免费试读已结束,剩余 2 页请下载文档后查看

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Perl学习笔记(三):文件,字符串的处理(2008-07-1518:23:00)一,Perl的文件存取(出自台湾的资料,把文件叫做档案,超难理解,现在终于想明白了,他们叫的档案,其实就是我们说的文件!!NND)1,文件代号FileHandle:STDIN,STDOUT,STDERR,DATA,ARGV,ARGOUT1)STDIN:标准输入装置my$input=<STDIN>;#從標準輸入裝置取得資料print$input;2)STDOUT:标准输出装置my$output="標準輸出";print"$output\n";printSTDOUT"$output\n";Perl使用STDOUT当做默认的输出档安代号,所以一般指定不指定效果是一样的。3)STDERR:标准的错误串流my$output="標準輸出";print"$output\n";printSTDERR"$output\n";[hcchien@Apple]%perlstderr.pl標準輸出標準輸出[hcchien@Apple]%perlstderr.pl>error.txt標準輸出4)ARGV:预设参数我们可以直接利用参数来读取某些文本的内容,使用者只需要在执行程序时,在程序后面加上文件名作为参数,然后在程序中我们就可以直接读到文本的内容了。还可以使用阵列形式作为参数。my$input=<ARGV>;print"$input\n";my$input=shift@ARGV;print"$input\n";5)打开,关闭一个文件(OPEN/CLOSE)(台湾资料竟然叫做开档/闭档,真能忽悠人)openFILE,"file.txt";openOUTPUT,"<output.txt";#從文件输出openINPUT,">input.txt";#輸入到一个文件openappend,">>append.txt";#追加到现在的文件结尾closeFILE;6)文件意外处理:die,warnusestrict;openFILE,"<foo.txt"ordie"開啟文件失敗:$!";while(<FILE>){print$_;}print"文件不存在,程序到不了这里\n";die,如果文件不存在,则Perl程序不再继续执行,而在执行完die后就停止了。$!是Perl的一个预设变量,它会存储系统产生出来的错误讯息。usestrict;openFILE,"<foo.txt"orwarn"openfailed:$!";while(<FILE>){print$_;}print"程式在這裡結束了\n";warn,如果文件不存在,只会出示警告信息,不会中断程序。7)文件的读与写#!/usr/local/bin/perl-wusestrict;openLOG,"/var/log/messages";#打開這個日誌檔while(<LOG>){#利用鑽石符號讀入資料printif(/sudo/);#符合比對的資料就列印出來}while讀取文件中的資料時,while會把所讀到的資料內容放進Perl的預設變數$_中,一直到文件結束,傳回EOF時,迴圈便會結束。8)<,>,>>在文件读取中的区别:openLOG,"(<,>,>>)log.txt"ordie$!;while(<LOG>){print$_;}printLOG"writetolog"ordie$!;<,从文件中读取内容,但是不能输出到文件里任何内容。如果什么都不加的清况下读文件状况会同加上“<”的效果一样。>,将内容输出到文件中,并将原有文件中的内容清空。>>,将内容追加到文件中,不会清空原有文件中的内容。二,文件系统-A文件上次存取至今的时间-B文件被判断为二进制-C文件的inode被更改至今的时间-M文件上次修改至今的时间-O/o目前实际使用者是否为该文件或目录的拥有者-R/r目前实际的使用者具有读的权限-S文件代号是否為socket-T文件判断为文字档-W/w目前实际的使用者具有写的权限-X目前实际的使用者具有执行的权限-c字元型文件-e检查文件或目录是否存在-f判断文件是否為文字档-g文件或目录具有setgid属性-k文件或目录設定了sticky位元-l文件代号是一个符号连結-s文件或目录存在而且有內容-t文件代號是TTY裝置-u文件或目錄具有setuid屬性-x目前的使用者具有執行的权限-z文件或目錄存在而且沒有內容while(-e(my$logfile="log.txt")){#判斷檔案是否存在openLOG,$logfileordie"$!";#開啟檔案代號my$line_num=1;while(<LOG>){print"$line_num\t$_";$line_num+