Perl学习笔记(八)--文件(三)

八、命令行参数

  @ARGV:全局,$ARGV[0] 是第一个参数,不是程序名,<>是对$ARGV的引用。@ARGV一旦赋值,原值丢失。
  1.第一次看到<>时,打开以$ARGV[0]中的文件,无参数则打开STDIN读,所以可以省略.
  2.shift(@ARGV)元素数量减少一个.
  3.<>读打开的文件中的所有行
  4.再读第二个参数表示的文件
  5.文件尾检测:eof和eof(),文件结束返回真。
  @ARGV=(“file1″,”file2″)
  while($line=<>){if(eof){print ‘eof’;}}
  读取file到末尾时,下一循环打开下一文件,每次读完一个文件输入出eof
  if(eof()){print ‘eof’;}所有文件都读完才输出eof

foreach(@ARGV)
{
print "==$_";    #循环打印出参数
}

九、写文件
print F (“str”)

F文件句柄,后面为空格,省略F为STDOUT
str输出内容,可用单引号’,不进行变量替换,不加引号,计算出变量的值再输出。
()可省略,这是函数的特点。

printf(“format str”,$a,$b….),格化化串包含%m.nf的格式指示,后面依次是相应的值列表。
write 用于格式化输出,不是read的相应操作。
syswrite(F,$data,length,$offset) 同sysread

 

十、文件权限和随机访问

chmod(mode,filelist)
mode=4位8进制数,unix中的文件owner,组,其它的设置。
chown(userid,groupid,filelist)改变文件的用户与组。
umask(maskval):返回原mask,unix中的umask值设置。

文件指针:
tell(F):当前位置。
seek(F,distance,pos):定位到指定位置。
F文件句柄,pos=0相对文件头,1相对当前位置,2相对文件尾。
distance相对pos表示的位置多少字节。

原文地址:https://www.cnblogs.com/Hebe/p/4444455.html