读取标准输入
读取标准输入流使用行输入操作符<STDIN>,读到文件末尾时会undef。 while (<STDIN>){ print "I saw $_"};
钻石操作符输入
钻石操作符<>是“行输入”操作符的特例,它是从用户指定的位置读取。如果把连字符(-)也当成参数,它也代表标准输入。
调用参数
钻石操作符的参数来自@ARGV数组,可以对数组进行处理:
@ARGV = qw # larry moe curly #; #强制让钻石操作符读取这三个文件;
while (<>){
chomp;
print "It was $_ that I saw in some stooge-like file!\n";
}
输出到标准输出
print @array;一个接一个打印出数组中所有的元素,元素之间不会有空格;
print "@array"; 只打印出@array在双引号中内插形成的字符串;
如果print 后面接着一个左括号,请务必确定在函数的所有参数之后也有相应的右括号。
使用printf 格式化输出
perl 的printf 函数与c 中的printf 函数很相似,用法基本一样。
%g:自动选择浮点数,整数,浮点数
%d:十进制数;%s :字符串;%f:转换格式
文件句柄
文件句柄是程序里代表perl进程与外界之间的I/O联系的名字,应使用全大写字母来命名文件句柄,避免程序出错。
打开文件句柄
open CONFIG, "dino"; #打开名为CONFIG的文件句柄,它指向文件dino.
open CONFIG, "<dino"; #<号声明此文件是用来输入的;
open BEDROCK, ">fred"; #打开文件句柄并输出到新文件fred,如果存在一个名为fred的文件,则会清除所有内容取代之;
open LOG, ">>logfile"; #以追加方式写入文本;
不正确的文件句柄将会立刻独到文件结尾(标量上下文中是undef,列表上下文中是空列表)
关闭文件句柄:close filehandle_name;
用die 处理严重错误
die 函数在perl遇到严重错误时会中止程序运行,并用错误信息告知原因:
if (! open LOG, ">>logfile"){
die "Cannot create logfile:$!";#$!代表可读的系统出错信息。
}
使用warn 输出警告信息
warn 函数的功能跟die 差不多,不过它不会中止程序的运行。
使用文件句柄
if (!open PASSWD, "/etc/passwd"){
die "How did you get log in ?($!)";
}
while (<PASSWD>){
chomp;
......;
}
print LOG “......”; # 输出到文件句柄LOG;
改变默认的文件输出句柄
select 操作符改变默认的输出文件句柄:
select BECROCK;
print "......"; #会把内容打印到BECROCK文件句柄;