perl学习笔记 - 输入与输出
钻石操作符 <> :从用户指定的位置读取输入(一般用于读取用户的输入文件)
注意:
1,<>会处理所有的输入,直到所有输入的结尾为止
一般在一个程序中只有一个<>,若出现多次则可能发生错误。
2,调用参数@ARGV @ARGV 是一个装着调用参数的数组
标准输入输出
1,读取从键盘输入的值 <STDIN>
注意 :<STDIN>只读取键盘输入的一行,到换行符结束 (用chomp去掉换行符)
若<STDIN>没有赋值给变量,则默认存在$_中
2,输出到标准输出 print (一般默认为屏幕输出)
3,段落输出:
print << "EOF"; #遇到“EOF”开头的行才输出结束 怀疑其实和shell一样,不一定要是EOF这个字符,可以是其他。只要结束是一样的即可
A :" welcome to ssdd,hehe~"
B:"what do you mean by 'hehe' ?"
EOF #EOF 开头,输出结束
printf :产生格式化的输出结果,printf的参数包括两部分:
1,用于填补空白的格式化字符;2,要输出的数据列表
格式字符串中可以包含多个转换,每一个转换都以一个%符号开头
printf "Hello ,%s; your password expires in %d days!\n",$user,$days;
文件输入
open [fileHandle],[mode],[filePath];
#以只读方式打开文件/home/user/text.txt
open IN,"</home/user/text.txt" or die $!; #$!表示输出错误信息
close IN; #关闭文件
文件模式:
< 以只读方式打开(默认)
> 以写入方式打开,文件原有内容会被清空
>> 以追加写的方式打开,写入内容会增加到文件末尾
文件输出
open [fileHandle],[mode],[filePath];
#以写入方式打开文件/home/user/text.txt 绑定到OUT句柄
open OUT, '>',"/home/user/text.txt" or die $!;
open OUT,">/home/user/text.txt" or die $!;
#写入内容到/home/user/text.txt中
print OUT "A test of output test.txt";
close OUT;#关闭文件
读写gz压缩文件
my $gzFile = "luckystar.txt.gz";
open IN,"gzip -dc $gzFile|" or die $!; # | 管道符
do something~;
close IN;
open OUT,"| gzip -9> $gzFile" or die $!;
do something~;
close OUT;
逐行读取文件
my $file ="/home/file.txt";
open IN ,"<$file" or die $!; #打开文件
while (my $line =<IN>){ #用钻石操作符获取IN文件中的行
chomp $line; #去掉换行符
do something~
}