输入和输出:
<STDIN>操作符:用来从STDIN读入数据:
如果读到文件结尾行输入符就会返回undef.
$line = <STDIN>; #读取下一行.
chomp($line =<STDIN>); #去掉输入的一行的最后的换行符
while (<STDIN>) {
print “$_”;
}
foreach (<STDIN>) {
print “$_”;
}
print函数:用来将信息输出到STDOUT。
$_ = “str1 str2 …”;
print; #print默认会打印$_的值。
print @arr; #打印数组元素,但是中间没有空格。
print “@arr”; #打印数组元素,中间有空格。
printf函数:格式化输出:
%%:百分号
%c:字符
%u:十进制
%o:八进制
%x:十六进制
%s: 字符串
%d:十进制整数,直接舍去小数点后的整数
%g:浮点数,自动选择科学计数法还是十进制。
%e:浮点数,科学计数法
%f:浮点数,十进制
%m.nf :m是总的位数,n是小数点后的位数
space:在非负数前面加空格。
+:在非负数前加一个加号,默认没有。
-:左对齐,默认是右对齐的。
0:右对齐用0补齐,默认是空格。
#:使前缀生效,0b/0B表示二进制,0x/0X表示十六进制,0表示八进制。
printf (“%s\n” x @arr), @arr; #打印数组
say:输出
say会在每行结尾自动加上换行符。
say的其它语法和print一样。
<>钻石操作符:
从文件或标准输入读取数据
perl program file1 file2 …
while (<>) {
chomp;
print “$_”;
}
print <> ; #和cat命令差不多。
print sort <> ; #和sort命令差不多。
@ARGV数组参数:
Perl的内置数组@ARGV用来存放参数,也可以在程序中指定这个数组。
@ARGV = qw# file1 file2 –options file3 #;
select函数:选择输出
使用select之后默认输出到STDOUT的都回输出到指定的输出句柄。
select FH; #在下一个select和指定句柄之前都是默认这个
$| = 1; #立即刷新缓冲区
if (STDERR/STDOUT/STDIN.., “>> filename“) { #相当于复制标准文件句柄。
…
}
如果标准文件句柄复制失败perl默认就使用原来的标准句柄。
die函数:处理错误
die会终止程序的运行,打印错误信息到stderr。
$! 特殊变量表示可读的系统错误信息。
if (! open FH,“>>filename”) {
die “Can not create file description: $!”; #输出自己和系统的信息。
}
if (@ARGV < 2) {
die “not enough arguments\n”; #加上换行不会输出具体错误行号。
}
warn函数:处理警告,打印警告信息到stderr。
close关闭句柄:
如果重新打开一个句柄perl会关闭之前的句柄;
程序结束时perl会自动关闭句柄。
close FH;
read
readline
write
tell
truncate
binmode
dbmclose
dbmopen
eof
fileno
flock
format
getc
seek
sysopen
syscall
sysread
sysseek
syswrite