本文共 1608 字,大约阅读时间需要 5 分钟。
目录
不自带\n;
自带\n,必须结合use 5.010才能使用;
格式化输出字符串;
只格式化,无print功能。
Perl主要使用printf及sprintf格式化输出
printf sprintf常用格式符
格式符 含义%% 百分号%s 字符串%d 整型数字%f 浮点型数字%e 科学计算法
%s %d %f %e可以设置显示字符宽度,补位字符(字符宽度不够时用于补齐的字符),小数位数。
例如,print1.pl
#!/usr/bin/perluse strict;use warnings;use 5.010;#printprint "hah\n";#saysay "hah1";#say自带\n,必须使用use 5.010#printfprintf "hah2\n";#%dprintf "%d\n", 3.1415126;#输出整型,3#输出整型,字符宽度为10,向右对齐,宽度不足用0补齐,默认用空格补齐printf "%010d\n", 3.1415126;#%fprintf "%010.2f\n", 3.1415126;#%010.2f#0 设置字符宽度补齐字符#10 设置字符宽度为10#.2 设置显示2位小数#f 输出浮点型#%%printf "%d%%\n", 3.1415126;#输出百分号#%eprintf "%010.3e\n", 23450000;#%s#输出字符串,字符宽度为10,向右对齐,宽度不足用0补齐,默认用空格补齐printf "%010s\n", "haha";#sprintfmy $result = sprintf("%010d",3.1415126);#()内方法类似于printfprint "$result\n";
perl print1.pl
hah
hah1
hah2
3
0000000003
0000003.14
3%
000000haha
0000000003
借助open函数,文件句柄(file handle)实现,具体见下文实例。
例如,in1.pl
#!/usr/bin/perluse strict;use warnings;my $infile=$ARGV[0];#open 句柄, <, 待读入文件;open IN,"<",$infile;while (){ chomp; next if(/^#/); next if(/^$/); my @t=split /\t/,$_; my $outfile=$ARGV[1]; #open 句柄, >(覆盖写入)或者>>(追加写入), 待写入文件; open OUT,">>",$outfile; print OUT "$.\t$t[0]\n";#OUT绑定待写入句柄 close OUT;#关闭句柄OUT}close IN;#关闭句柄IN
perl in1.pl infile.txt outfile.txt
cat infile.txt#输入文档infile.txt
#testfile
a11 a12:a13 a14
a21 a22 a23
a31 a32 a33
cat outfile.txt#输出文档outfile.txt
2 a11
3 a21
5 a31
分享数据科学和生物信息方向。
转载地址:http://jbmwz.baihongyu.com/