类比Linux重定向;
为待读取的文件或者准备写入的新文件名,一般配合 ARGV 从参数中读取。
常用的标准模式为
考虑到有时文件无法打开的现象,可以在结尾补充说明性的报错信息
首先要理解两种文件的区别---
(1)fastq有四行,第一行开头为 @
(2)fasta只有两行,第一行开头为 >。
因此要将fastq的三四两行删去,同时将第一行的 @ 更换为 >。
还是昨天的那个程序,假设你的文件分为 1.txt 2.txt 3.txt,这个时候不要包含文件头,即所有的文件都是内容
程序修改为:
#$head = <>while(<>)
{
@line = split(/,/,$_)
$lwfs = $line[7]
$user = join('|',$line[1],$line[2],$line[3],$line[4],$line[6],$line[7])
$info{$lwfs}{'times'} +=1
$info{$lwfs}{'users'}{$user} +=1
}
print "lwsf,user,times\n"
foreach my $key ( keys %info )
{
$times=$info{$key}{'times'}
@users = keys $info{$key}{'users'}
$usercount = $#users+1
print "$key,$usercount,$times\n"
}
注意:读取文件头到$head变量的那句已经注释掉了。
此时运行方法为: perl my.pl 1.txt 2.txt 3.txt 就可以了
perl自己会把所有文件内容都读进来处理的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)