perl 文件[三]

命令行参数:

<> 什么也不写是读入标准输入

@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

写文件;

print F("str");

F文件句柄,后面为空格,省略F为STDOUT

str输出内容,可用单引号',不进行变量替换,不加引号,计算出变量的值在输出。


() 可省略,这是函数的特点


Print("format str",$a,$b....);同c中的printf, 格式化串包含%m.nf

的格式指示,后面依次是相应的值列表


Write 用于格式化输出,不是read的相应操作

Syswrite(F,$data,length,$offset);同sysread


可读写操作:

open (F,"+<t.txt") || die; ##读写方式打开
@a=<F>;
foreach  (@a){print "$_
";};
print F "4$/"; ##写入4到文件t.txt
close(F);

原文地址:https://www.cnblogs.com/hzcya1995/p/13352038.html