Perl split函数


学习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函数完。


《 “Perl split函数” 》 有 33 条评论

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

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

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

  2. 我在网上看了一段程序,为什么返回不了结果呢?网址是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”;
    }

    • 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";
        }

  3. 你好,我想知道如何从Genbank里,根据知道的基因名字调取gene sequence and protein sequence. 或者如何处理一个含有许多fasta的文件,如何根据genename 调取想要的gene sequence. 谢谢。

  4. 比如说:
    @fields = split(/(:)/, “1:2:3:4:5”);
    print “Field values are: @fields\n”;

    这样的输出结果是:
    1 : 2 : 3 : 4 : 5
    这种用法楼主会吗?会的话给我讲讲吧。我的邮箱是
    xiangpeis@hotmail.com

    还有就是,split的第三个参数LIMIT如果太大的话,会在lvalue的数组中最大index处出现一个undef的值,这个怎么理解啊?谢谢。

  5. La marchandise Exploitant préfère spécifique Unité objets réalisé dans la Alors, la prochaine Run . Votre amant veux juste être sûr que le projet défi Les séjours prêt . Ce produit Entreprise investit l’ jeune fille idées avec avant plus l’ Dash . [url=http://www.sacslouisvuitton2013.com]louis vuitton[/url]
    Bien , avant nous obtenons lancée je veux expliquer un assez grand nombre 1er pour commencer. Ce n’est pas a une fin en soi, être-ensemble avec Armoire Produce, qui signifie donrrrt détresse un localisée pour localiser un whacking son Méthodes de Résultat . Amour il peut être décollage afin d’ brindilles concert et vous réalisé matches . [url=http://www.sacslouisvuitton2013.com]louis vuitton sac[/url]
    Savoir-faire constamment sur le aller de l’avant et aussi donc critique chaque propriétaire de l’entreprise garder nouvelle . Faisant usage de idées créatives est pas nécessairement au expansion de mais encore, quoi de plus, il les causes maintenir et le réel acheter et vendre et efficacement |} systématiquement, http://www.sacslouisvuitton2013.com

  6. 我最近也在写一个关于Perl的教程,能力有限,见笑了:http://www.yiibai.com/perl
    希望能多交流和指点。