perl:怎么将已有fasta文件读取到ARGV?

是bioperl练习题的第一题,具体见http://wenku.baidu.com/link?url=R3Ls_l_2_bjlc-2q1u7VnrFColGo2DPCkEO_aXFCWkx232ZuC-QFgqMfIsg9Jk7nmP9walVCQmTqr1Si0fRLm5uOtYKdjocWwsO6wLRk4W7
我的疑问是,fasta文件或txt文件的值是怎么传递到ARGV里的,真的不太懂,求教各位~?
代码:
#!/usr/bin/perl-w
use strict;
unless (@ARGV==2) { # @ARGV 传给脚本的命令行参数列表
die"Usage: perl $0 <input.fa><out.len>\n"; # 当命令行参数不是2的时候输出使用说明
}
my($infile,$outfile) = @ARGV; # 把命令行参数赋值给输入文件和输出文件
open IN,$infile|| die"error: can't open infile: $infile"; #打开输入文件句柄IN
openOUT,">$outfile" || die$!; # 打开输出文件句柄OUT
$/=">";<IN>;# 设置输入记录分隔符为”>”,并去除第一个”>”
while ( my $seq= <IN>){ # 把序列ID行和序列赋值给$seq
my $id = $1 if($seq =~ /^(\S+)/); # 获取序列ID
chomp $seq; # 去掉末尾的”>”
$seq =~ s/^.+?\n//; # 删除第一行
$seq =~ s/\s//g; #删除序列中的空白字符
my $len = length($seq); # 计算序列长度
print OUT "$id\t$len\n"; # 输出结果到输出文件
}
$/="\n";# 把输入记录分隔符改为默认值
close IN; # 关闭输入文件句柄
closeOUT; # 关闭输出文件句柄

这个比较简单啊,ARGV是命令行参数吗,所以要通过命令行带进来
perl test.pl input.fa out.len
test.pl这个脚本的名字 input.fa $ARGV[0[ out.len $ARGV[1]
温馨提示:答案为网友推荐,仅供参考
相似回答