- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件缓冲 缓冲 无缓冲 打开: open,sysopen sysopen 关闭 close 读 ,readline sysread 写 print syswrite 定位 tell,seek sysseek 读文件 $line=file读一行到line,指针后移一行。缺省读到$_中。$/=‘\n,为行分隔符,遇到它则为一行结束,行包含$/。可用chomp($s)去除此标志,行尾不含$/则不去除字符。可设置$/为其他字符串,遇到$/为行结束,chomp去除此字符串。 @array=file文件内容全部读出,每行为一个元素。含回车。 当从STDIN中读时,可省略为。 read(F,$in,len[,$offset])读入$in sysread(F,$in,len[,$offset]) getc(F)读一个字符 命令行参数 @ARGV:全局,$ARGV[0]是第一个参数,不是程序名。 是对$ARGV的引用。@ARGV一旦赋值,原值丢失。 1。第一次看到<>时,打开以$ARGV[0]中的文件。无参数则打开STDIN读。所以可以省略。 2。shift(@ARGV),元素数量减少一个。 3。<>读打开的文件中的所有行。 4。再读第二个参数表示的文件。 文件尾检测:eof和eof()。文件结束返回真。 @ARGV=(”file1”,”file2”); while($line=){if(eof){print eof;}} 读取file1到末尾时,下一循环打开下一文件。每次读完一个文件输出eof. if(eof()){print eof);}所有文件都读完才输出eof。 写文件 printf(“format str”,$a,$b…);同c中的printf,格式化串包含%m.nf的格式指示,后面依次是相应的值列表。 print F ( “str”); F文件句柄,后面为空格,省略F为STDOUT。 str输出内容。可用单引号’,不进行变量替换,不加引号,计算出变量的值再输出。 ()可省略。这是函数的特点。 write用于格式化输出。不是read的相应操作。 syswrite(F,$data,length,$offset);同sysread 文件测试 –op expr if( -e “file1”){print STDERR (“file1\n”);}文件是否存在。 -b是否为块设备 -c是否为字符设备 -d是否为目录 -e是否存在 -f是否为普通文件 -g是否设置了setgid位 -k是否设置了sticky位 -l是否为符号链接 -o是否拥有该文件 -p是否为管道 -r是否可读 -s是否非空 -t是否表示终端 -u是否设置了setuid位 -w是否可写 -x是否可执行 -z是否为空文件 -A距上次访问多长时间 -B是否为二进制文件 -C距上次访问文件的inode多长时间 -M距上次修改多长时间 -O是否只为“真正的用户”所拥有 -R是否只有“真正的用户”可读 -S是否为socket -T是否为文本文件 -W是否只有“真正的用户”可写 -X是否只有“真正的用户”可执行 -s 返回文件长度,-A-C-M返回天数。 正则表达式(模式匹配) 检验匹配是否成功 =~字符串是否匹配模式,匹配则为真,没有匹配则为假。!~不匹配为真,匹配为假。 regular expression,规则表达式 模式匹配,在字符串中寻找特定序列的字符。 指定模式:由斜线包含,/def/即模式def。 匹配操作符 =~、!~ $question=“expleaseding” $question =~ /please/ $question!~/edit/ 正则表达式的使用 if ($question =~ /please/) { print (Thank you for being polite!\n); } else { print (That was not very polite!\n); } 用于条件判断: grep:正则表达式只对简单变量匹配,如果是数组@a=~/abc/,则’2’=~/abc/。用grep(/abc/,@a);对数组中的每个元素匹配。 split(/abc/,$line)根据模式匹配分割字符串。 模式匹配的3种类型: m//模式匹配,s///匹配并替换,tr///逐一替换
原创力文档


文档评论(0)