详细解读一个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?

自动化运维必须要学的Shell脚本之——条件语句的详细解读

可以将 perl 脚本的执行权限限制为从另一个 perl 脚本调用吗?

Perl命令行模式1

安装脚本的 shell 脚本与 perl - perl 有多普遍?