详细解读一个perl脚本
Posted 科研入门狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详细解读一个perl脚本相关的知识,希望对你有一定的参考价值。
首先放上一个可以根据ID号提取基因序列的代码,代码和解读如下:
#! usr/bin/perl -w 告诉别人和自己这是一个perl脚本,-w输出错误的警告信息
use strict; 严格模式下进行
#输入需要提取序列的id号的文本
my %hash = (); 新建一个哈希
open IN , "<$ARGV[0]"; 读入文件
while (<IN>){ while进行循环按每列读入文本,直到读完最后一列会停止
chomp; 去除换行符
my @line = split /\s+/,$_; 将读入的每列保存到一个数组中,并且以空白字符分割
$hash{$line[0]}=2; 把数组的id号放入哈希中,并且赋值为2(这个值可以任意)
}
close IN; 关闭读入的文本
open FA, "<$ARGV[1]"; 打开你的序列文本
open OUT, ">$ARGV[2]"; 打开一个你需要输出的文本
$/=">";<FA>; 将FA文件,以>作为分割符
while (<FA>){ while以>进行逐个读入
chomp; 去除最后换行符
my $id =(split /\s+/,$_)[0]; 该第一列的id号保存到变量id中
if (exists $hash{$id}){ if判断语句,如果id号在哈希中存在
print OUT ">$_"; 打印该序列,并输出到输出文本中
}else{ 否则下一个
next;
}
}
close FA; 关闭读入文件
close OUT; 关闭输出文件
接下来分享一个简单的,也是利用哈希和if判断语句,大家可以自己研究下。
#usr/bin/perl -w;
#usr/bin/perl -w;
use strict;
my %hash = (
'GCA' => 'A','GCG' => 'A', 'GCT' => 'A',
'TGC' => 'C', 'TGT' => 'C'
);
print "please input a seq:";
chomp (my $seq =<STDIN>);
if (exists $hash{$seq}){
print "this mimazi is : $hash{$seq}\n";
}else{
print "Without this sequence\n";
以上是关于详细解读一个perl脚本的主要内容,如果未能解决你的问题,请参考以下文章
自动化运维必须要学的Shell脚本之——编程规范和变量详细解读
如何在 perl 脚本中使用 UTF8 连接到 MySQL?