標籤:prel簡介 perl程式碼範例
perl來自Unix系統,而且目前也紮根於Unix中。Perl是實用摘錄與報表語言(Practical Extraction and Report Language),大寫P表示的“Perl"指的是程式語言,而小寫p表示"perl"指的則是實際編譯並運行程式的解譯器。它的創作者是Larry,他創造的目的是能有Sell或awk一樣能快速編程,有能具備grep,cut,sort和sed的進階功能,又能填補低級語言如c/c++或程式設計語言和進階語言之間的空隙。perl適合文文書處理、商務程序管理,不適合做"封閉式"的程式,(如別人看不到你的秘密演算法)。 首先,我們來分析我寫的一段莫版型的perl代碼 #!/usr/bin/perl -w#這是你perl執行程式的絕對路徑 use strict;#引入strict 包它包下有些編碼的規範規則,如果代碼不符合規範,會發出警告 use warnings; use Getopt::Long; use Data::Dumper; use FindBin qw($Bin $Script); use File::Basename qw(basename dirname); my $BEGIN_TIME=time(); my $version="1.0.0";# GetOptionsmy ($fIn,$fOut);#這是定義局部變數GetOptions( "help|?" =>\&USAGE, "o:s"=>\$fOut, "i:s"=>\$fIn, ) or &USAGE;&USAGE unless ($fIn and $fOut);#這是擷取命令列參數open (IN,$fIn) or die $!;#開啟一個檔案是否成功,如果不成功則會輸出系統提供的錯誤($!)open (OUT,">$fOut") or die $!;#$/=">";#這是一個分隔字元,將文本的字元考“>”來分割,給你的對應變數while (<IN>) {#<IN>是當你開啟檔案一直處於正常狀態沒有異常發生時 chomp; next if (/$/); my @lines=split /\n/,$_;}close IN;close OUT;print STDOUT "\nDone. Total elapsed time : ",time()-$BEGIN_TIME,"s\n";# sub function#定義你的函數如c語言,但是不需要像C 那樣需要先聲明sub ABSOLUTE_DIR{ #$pavfile=&ABSOLUTE_DIR($pavfile); my $cur_dir=`pwd`;chomp($cur_dir); my ($in)[email protected]_; my $return=""; if(-f $in){ my $dir=dirname($in); my $file=basename($in); chdir $dir;$dir=`pwd`;chomp $dir; $return="$dir/$file"; }elsif(-d $in){ chdir $in;$return=`pwd`;chomp $return; }else{ warn "Warning just for file and dir\n"; exit; } chdir $cur_dir; return $return;}sub max{#&max(lists or arry); #求列表中的最大值 my $max=shift; my $temp; while (@_) { $temp=shift; $max=$max>$temp?$max:$temp; } return $max;}sub min{#&min(lists or arry); #求列表中的最小值 my $min=shift; my $temp; while (@_) { $temp=shift; $min=$min<$temp?$min:$temp; } return $min;}sub revcom(){#&revcom($ref_seq); #擷取字串序列的反向互補序列,以字串形式返回。ATTCCC->GGGAAT my $seq=shift; $seq=~tr/ATCGatcg/TAGCtagc/; $seq=reverse $seq; return uc $seq; }sub GetTime { my ($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst)=localtime(time()); return sprintf("%4d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon+1, $day, $hour, $min, $sec);}sub USAGE { my $usage=<<"USAGE"; ProgramName: Version: $version Contact: Simon Young <yangxh\@biomarker.com.cn> Program Date: 2012.07.02 Modify: Description: This program is used to ...... Usage: Options: -i <file> input file,xxx format,forced -o <file> output file,optional -h helpUSAGE print $usage; exit;}
本文出自 “聽停挺” 部落格,請務必保留此出處http://drxin.blog.51cto.com/10182098/1678158
perl學習之路