本文详细介绍Perl中print say printf sprintf的使用方法;
Perl中格式化输出;
Perl中文件的读写(open函数,文件句柄(file handle))。
目录
欢迎微信随缘关注@pythonic生物人
1、Perl中IO操作
- print say printf sprintf区别
say
printf
sprintf
- Perl格式化输出
- I/O实例,格式化实例
2、Perl中读写文件操作
3、参考文献
1、Perl中IO操作
- print say printf sprintf区别
不自带n;
say
自带n,必须结合use 5.010才能使用;
printf
格式化输出字符串;
sprintf
只格式化,无print功能。
- Perl格式化输出
Perl主要使用printf及sprintf格式化输出printf sprintf常用格式符
格式符 含义
%% 百分号
%s 字符串
%d 整型数字
%f 浮点型数字
%e 科学计算法
%s %d %f %e可以设置显示字符宽度,补位字符(字符宽度不够时用于补齐的字符),小数位数。
- I/O实例,格式化实例
例如,print1.pl
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
#print
print "hahn";
#say
say "hah1";#say自带n,必须使用use 5.010
#printf
printf "hah2n";
#%d
printf "%dn", 3.1415126;#输出整型,3
#输出整型,字符宽度为10,向右对齐,宽度不足用0补齐,默认用空格补齐
printf "%010dn", 3.1415126;
#%f
printf "%010.2fn", 3.1415126;
#%010.2f
#0 设置字符宽度补齐字符
#10 设置字符宽度为10
#.2 设置显示2位小数
#f 输出浮点型
#%%
printf "%d%%n", 3.1415126;#输出百分号
#%e
printf "%010.3en", 23450000;
#%s
#输出字符串,字符宽度为10,向右对齐,宽度不足用0补齐,默认用空格补齐
printf "%010sn", "haha";
#sprintf
my $result = sprintf("%010d",3.1415126);#()内方法类似于printf
print "$resultn";
perl print1.pl
hah
hah1
hah2
3
0000000003
0000003.14
3%
000000haha
0000000003
2、Perl中读写文件操作
借助open函数,文件句柄(file handle)实现,具体见下文实例。例如,in1.pl
#!/usr/bin/perl
use strict;
use warnings;
my $infile=$ARGV[0];
#open 句柄, <, 待读入文件;
open IN,"<",$infile;
while (<IN>){
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
3、 参考文献:
http://www. tutorialspoint.com/perl /perl_printf.htm https:// perldoc.perl.org/functi ons/printf.html
欢迎微信随缘关注@pythonic生物人