perl的命令行参数保存在@ARGV中,而<>以@ARGV为默认参数。当然可以对@ARGV进行赋值操作,以改变<>的输入文件。命令行的当前执行文件名保存在$0中。
当@ARGV为空的时候即命令行输入为./zzbds.pel(执行文件名) 时,<>的意思为从STDIN中输入,以文件结束符为结尾。
此时: (while(<>)) = (while(my @enterfile = <STDIN>))
当@ARGV不为空的时候,<>将后面的参数按空格区分为文件名,一个个进行打开操作。实际事例如下:
命令行: ./2zzbds.test askdf lkjef lkjef lkj tttest (其中2zzzbds.test为perl文件; tttest 为当前目录存在的文件 其他不存在)
perl中命令如下:
while(<>){
print;
}
输出结果如下:
Can't open askdf: 没有那个文件或目录 at ./2zzbds.test line 6. (这里将几个参数作为文件名进行打开操作,打开失败,报warning)
Can't open lkjef: 没有那个文件或目录 at ./2zzbds.test line 6.
Can't open lkjef: 没有那个文件或目录 at ./2zzbds.test line 6.
Can't open lkj: 没有那个文件或目录 at ./2zzbds.test line 6.
Version:2.1 (这里为tttest文件的内容)
Size:21k
Status:Final beta
om name:granite
Author: Randal L. Schwart
Company:RockSoft
Department:R&D
Date:June 12,2008 6:38 pm
Version:2.1
Size:21k
Status:Final beta
zjktcsv4%
当然还有常见的打开文件用法:
open FILE, "<tttest"; (打开只读文件tttest)
while(<FILE>) (为读取tttest文件到文件介绍符: 一般linux系统终端输入为ctrl+D)
还有打开已有的默认文件句柄:
while(<STDIN>) while(<STDOUT>)