在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
#开头处常用模块 #!usr/bin/perl use warnings; use strict; use Getopt::Long; use File::Basename; use PerIO::gzip; #open IN,"<:gzip","$in" or die " $in:$!"; #打开的是一个gzip压缩文件,即$in是file.gz文件 use Cwd;
#外部参数设置“模块”—— “use Getopt::Long; ”(另有详解) my ($indir,$rep,$dep,$out);
#说明“模块-1” =head1 name myfile,pl #介绍此脚本功能 =head1 example perl myfile.pl -参数1 ******** -参数2 ********* -参数 ******** 2>myfile.log =head1 description #如果,使用Getop::Long模块,一般此处为参数解释说明 -参数1 <str> ******** -参数2 [str] ******** -参数3 [int] ******** -参数4 [flt] ******** -参数 ******** -help help =head1 author =head1 version 1.0 2017-07-15 15:00 =cut die `pod2text $0` if ( $help ); # 当用户有输入 -help参数时,进行输出上边的=head1 ...=head1 ......=cut框架中的信息; die `pod2text $0` unless ($fq1 && $list1); # 用于缺少指定的必须参数时,进行报错,输出上边的=head1 ...=head1 ......=cut框架中的信息; # `command` # pod2text 是命令行函数 #功能输出处理对象(脚本)中的的=head1 ...=head1 ......=cut框架中的信息 #说明“模块-2” my $usage=<<USAGE;
#显示时间信息 my $time=`date`; # date 命令行函数,输出时间 print STDERR "|-- Start $0 at time: ".$time."\n"; # $0指代的就是myfile.pl脚本
#注释框信息——任意发挥你想要的解释or提示作用 eg1:解释文件格式 #####adapter.list format######################################################################### #内部全局参数设置及初始化 my($name,$place,$num);
#内部全局Perl取整、四舍五入、向上取整、向下取整 取整int 其中ceil和floor,要使用库POSIX,在perl源代码里加入
#打开外部文件 if($methy=~/\.gz$/){ #打开输出文件 if($cout =~ /.gz$/){open OT,">:gzip",$cout;}else{open OT,">$cout";}
#while循环 while(<IN>){ chomp($_); #去掉换行符字符 next if($_ eq "");#跳过空行 next if($_=~/^$/)#跳过空行 last if(not defined $_); #跳过不含字符(包含换行符、空格、空行等)和数值的行,defined判断变量(无论这个变量是否被定义)是否为空(即不包含任何字符和数值)。 }
#for循环 for( $a = 0; $a < 10; $a = $a + 1 ){ print "a 的值为: $a\n"; }
#split方便用法 my $chromosome_2 = (split /\./,$chromosome)[0]; my ($id, $strand, $chr) = (split /\t/)[0..2]; #以空格为分割标准为 /\t/ my ($id, $strand, $chr) = (split /\s+/)[0..2]; #以空格为分割标准为 /\s+/
#偶尔用,但很容易忘记的字符串截取命令substr() 语法:substr($string,offset,length)
PS: #一些特殊符号的意义 $0 #指代的就是运行的*.pl 或者 /dir1/dir2/*.pl,即命令行 perl *.pl 或者 perl /dir1/dir2/*.pl $? #如果,报错,$?会产生一个数值,可用下边的perl脚本纠错,查出$?产出的数值是代表什么报错(这个脚本内容没搞明白!) if ($? == -1) {
$! #直接文字报错说明原因 die “$!” #打印$!值,并结束整个进程 #他自带换行符
|
请发表评论