perl语言入门(4)
# \b边界针对的是\w组成的单词。 while是一行一行的读入,而foreach是全部读入。while.foreach都有$_
3.printf格式化输出
print示例:
my @array = qw/a b c d e/;
print @array,"\n"; #只打印元素没有空格
print "@array"; #数组元素间用空格隔开
一般情况下输出会先送到缓冲区.
格式 printf "%s test %d\n",$user,$days;
# 格式字符串个数=变量个数
数组和printf
my @items = qw(wilama dino pebb);
my $format = "%10s\n" x @items;
printf $format,@items;
4.文件句柄
最好大写,6个特殊文件句柄STDIN,STDOUT,STDERR,DATA,ARGV,AGVOUT
打开文件句柄
open LOG, "dino";#默认从dino读入
open LOG, ">dino";# 追加
## >,>> 若果文件不存在就创建.
close LOG #关闭文件句柄
5.die处理严重错误
die输出指定信息,并且程序立刻终止,返回不为0的退出码.
并且打印出错的程序名和行号.如果在die信息尾加\n,则不打印.
if (! open LOG, ">dino") {
die "Cannot create file: $!"
#die "Cannot create file: $!\n"
}
## $!系统出错信息比方permission denied
6.使用文件句柄
if (! open LOG, "/etc/passwd") {
die "hello,($!)";
}
while () {
print "$_";
}
# 默认每个文件的行都是字符串+\n
print OUT "first";
print OUT ("second");
# 结果firstsecond
7, print默认输出到STDIN
改变文件句柄
select OUT;
# 默认输出到文件句柄时都会经过缓冲
# $| =1 立刻刷新缓冲区
print "first";
# 文件句柄改回STDOUT
select STDOU;
8. 文件句柄复用
如果打开了句柄OUT,又打开了同名的句柄OUT,则先前的会自动关闭
复用默认的文件句柄
if (! open STDOUT, ">fuyong") {
die "heloo,$!\n";
}
print "test STDOUT repeat.\n";
## 还不知道怎么还原STDOUT
9. 使用say来输出,要在perl5.10声明use 5.010;才能使用say
say函数和print函数差不多,但是会在每行输出的结尾自动加上换行符。
页:
[1]