Categorized | Biocompute

Tags | , ,

Perl split函数

Posted on 30 一月 2010 by 柳城 ,阅读 150 简洁版 繁體

学习Perl语言编程中……

介绍:

split /PATTERN/, EXPR
split /PATTERN/
split

Perl split函数扫描字符串中EXPR给出的分隔符,并把该字符串劈成一个子字符串列表。简单地意思就是把字符串,按照/PATTERN/里的分隔符来分隔,返回一个数组。/PATTERN/可以是分隔符(逗号空格等),也可以是正则表达式。

如果后面指定LIMIT,如:

split /PATTERN/, EXPR, LIMIT

LIMIT参数只分裂字符串的一部分。Perl split函数相当于PHP的explode函数。

例子Example

例如试试下面的例子:

#!/usr/bin/perl -w

@fields = split(/:/, "1:2:3:4:5");
print "Field values are: @fields\n";

#It will produce following result:
#Field values are: 1 2 3 4 5

Perl split函数是非常常用的一个函数。

一个更加酷的例子如下:把字符串分割为独立的字符。

#!/usr/bin/perl -w

print join ':', split / */, 'hi there';

#result:
#h:i:t:h:e:r:e

Perl split函数完。

延伸阅读:

  1. Perl chdir函数
  2. Perl chr函数
  3. perl:使用system函数
  4. Perl:FastQ与FastA格式的相互转换
  5. Perl closedir函数

转载请注明 : 来源于 Perl split函数 | 柳城博客

相关主题

19条评论 于 “Perl split函数”

  1. evlos Says:

    阿门,弱弱飘过,打打酱油 ~ 看不懂啊看不懂 ~

    [回复]

    柳城 回复:

    看到这句就熟悉了:Perl split函数相当于PHP的explode函数。 :)

    [回复]

  2. Firm Says:

    Perl,没接触过,实在是看不懂

    [回复]

  3. D-Horse Says:

    恩,这个在Perl字符串操作中经常会用到,很有用! [得意]

    [回复]

    柳城 回复:

    是啊。非常常用。

    [回复]

  4. 路人假 Says:

    perl是一门很神奇的语言~

    [回复]

  5. xinsinian2006 Says:

    你好博主,这两个网站是预测跨膜区的,只能一条一条的输入啊,可是我有一个1万条序列的fasta该咋办啊,反正不能一条一条的输入预测啊。这个问题纠结啊,网上也没有答案,多谢博主

    SOSUI: Submit a protein sequence :

    http://bp.nuap.nagoya-u.ac.jp/sosui/sosui_submit.html

    http://sosui.proteome.bio.tuat.ac.jp/sosuiframe0.html

    HMMTOP

    http://www.enzim.hu/hmmtop/html/submit.html

    [回复]

    柳城 回复:

    看了看, HMMTOP是一个软件啊. 你下载下来用, 应该就可以批量的吧..

    [回复]

    柳城 回复:

    或是emboss的tmap

    [回复]

    xinsinian2006 回复:

    有没有可能用perl或者其他语言,编一个程序,实现向远方的服务器自动的发送一条序列信息,然后自动保存这个结果。如此循环完成这一万条呢?想法比较恐怖……因为涉及自动填写表单信息和,自动保存结果……

    [回复]

    柳城 回复:

    你会就可以啊。 只是每一次要有间隔时间,不然很容易就给封掉了。。

    [回复]

    xinsinian2006 回复:

    perl支持时间吗?计时,看来我只能试试了

    [回复]

  6. wallacew Says:

    柳城兄,您好。
    最近小弟碰到一个问题。
    我需要用一个软件(用c写的,编译好的)跑几千个文本,由于这个软件在每次只能运行一个文本,因此想用perl写一个脚本完成。
    在该软件的单次运行中,需要手动输入一些参数。
    我想用管道命令打开该程序,再用perl脚本向该程序输入参数,然后循环。但困难是如何控制那个软件和如何向那个软件输入参数?
    目前当我用管道一打开那个软件,根本就停不下来。
    小弟学perl才2个月,请您帮忙指点迷津。

    [回复]

    柳城 回复:

    不知道呢。呵。。 看的不是太明白。貌似不是perl的问题,是C的问题。你改改C,从命令行调用文件就可以了吧?

    [回复]

  7. 秦大少 Says:

    希望有时间能写点初级教程

    [回复]

  8. xinsinian2006 Says:

    我在网上看了一段程序,为什么返回不了结果呢?网址是http://www.nokiamobile.org.cn/23_100111_824717.html

    我的程序如下:
    #!/usr/bin/perl

    use LWP::UserAgent;
    use HTTP::Request::Common;

    $protein="MSSSTPFDPYALSEHDEERPQNVQSKSRTAELQAEIDDTVGIMRDNINKVAERGERLTSI";

    my $agent=LWP::UserAgent->new;

    my $SUSUI_URL="http://sosui.proteome.bio.tuat.ac.jp/cgi-bin/adv_sosui.cgi";

    my $req = HTTP::Request->new(POST => "$SUSUI_URL");

    $req->content(query_seq=>"$protein");

    my $res = $agent->request($req);

    # Check the outcome of the response
    if ($res->is_success) {
    print $res->content;
    } else {
    print "Bad luck this time\n";
    }

    [回复]

    xinsinian2006 回复:

    my $SUSUI_URL="http://sosui.proteome.bio.tuat.ac.jp/cgi-bin/adv_sosui.cgi";
    我把这句改为my $SUSUI_URL="http://www.enzim.hu/hmmtop/server/hmmtop.cgi";

    结果HMMTOP的也不返回正确结果,为什么呢?牛人

    [回复]

    柳城 回复:


    #!/usr/bin/perl

    use LWP::UserAgent;
    my $browser = LWP::UserAgent->new;
    $protein = "MSSSTPFDPYALSEHDEERPQNVQSKSRTAELQAEIDDTVGIMRDNINKVAERGERLTSI";
    my $SUSUI_URL = "http://www.enzim.hu/hmmtop/server/hmmtop.cgi";
    my $response = $browser->post( $SUSUI_URL, [ 'if' => $protein, ] );

    if ($response->is_success) {
    print $response->content;
    } else {
    print "Bad luck this time\n";
    }

    [回复]

    xinsinian2006 回复:

    谢谢啊,牛人就是牛人啊

    [回复]

Leave a Reply

[强] [握手] [可爱] [ok] [呲牙] :) [偷笑] [流泪] [疑问] [亲亲] [擦汗] [得意] [衰] [可怜] [抱拳] [大兵] more »

Advertise Here

最新评论

Lc.live