perl同时写入两个文件_Perl学习04之IO及文件读写

这篇博客介绍了Perl中的IO操作,包括print、say、printf和sprintf的区别和用法,详细讲解了如何进行格式化输出。此外,还探讨了Perl如何进行文件的读写操作,特别是利用open函数和文件句柄实现读写。通过实例代码演示了如何同时写入两个文件。
摘要由CSDN通过智能技术生成

64d07bc1f09f8c77781857283a33774d.png
本文详细介绍Perl中print say printf sprintf的使用方法;
Perl中格式化输出;
Perl中文件的读写(open函数,文件句柄(file handle))。

目录

欢迎微信随缘关注@pythonic生物人

1、Perl中IO操作

  • print say printf sprintf区别
print
say
printf
sprintf
  • Perl格式化输出
  • I/O实例,格式化实例

2、Perl中读写文件操作

3、参考文献


1、Perl中IO操作

  • print say printf sprintf区别

print

不自带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生物人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值