perl: 输入输出
输入和输出: ? <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? (“%sn” 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 argumentsn”;??? #加上换行不会输出具体错误行号。 } ? 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |