产生简单随机DNA序列的Perl脚本

  1. 程序源码

  2. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    #!/usr/bin/perl 
     
    use strict;
    use warnings;
     
    my @base   = ( "A", "T", "G", "C" );
    my $length = 10;
    my $num    = 2;
     
    for ( my $i = 1 ; $i <= $num ; $i++ ) {
       for ( my $j = 1 ; $j <= $length ; $j++ ) {
           my $element = $base[ rand @base ];
           print $element;
       }
       print "n";
    }
  3. 结果示例

  4. 1
    2
    
    ACTAAGCATT
    CAAGGTACGT
  5. 备忘说明

  6. 数组的索引可以是小数,Perl会自动舍弃小数部分,而只使用整数部分。

  1. 楼主的程序太多C的影子。my @base = ( "A", "T", "G", "C" );
    my $length = 10;
    my $num = 2;
    for(1..$num){
    my $element=join '', map { $base[int rand @base] } (1..$length);
    print $element,"\n";
    }

  2. 你说得是for循环吧?我觉的虽然可以想你的那样精简,但我比较喜欢清晰明白,毕竟使用Vim之类的编辑器配合特定的语言插件在输入的时候就不怎么费键盘了。萝卜白菜各有所爱吧!
    另外,请教一下,为何你在程序中对单引号和双引号都要使用转义符呢?调试出错呀!

  3. 是第一次没发成功,直接粘贴你这biog网页的代码造成的,你将所以“”替换成空再试试