perl學習之路

來源:互聯網
上載者:User

標籤: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學習之路

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.