柳城博客's Archivers

From 柳城 on 2010-01-30 13:22:56

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函数

From evlos on 2010-01-30 14:33:57

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

From 柳城 on 2010-01-30 15:12:07

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

From Firm on 2010-01-30 18:41:37

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

From D-Horse on 2010-01-30 20:35:55

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

From 路人假 on 2010-01-31 11:42:10

perl是一门很神奇的语言~

From 柳城 on 2010-01-31 16:42:55

是啊。非常常用。

From xinsinian2006 on 2010-01-31 22:27:18

你好博主,这两个网站是预测跨膜区的,只能一条一条的输入啊,可是我有一个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

From 柳城 on 2010-02-01 11:09:30

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

From 柳城 on 2010-02-01 11:20:26

或是emboss的tmap

From xinsinian2006 on 2010-02-04 01:17:36

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

From 柳城 on 2010-02-04 09:46:38

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

From xinsinian2006 on 2010-02-04 19:41:30

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

From wallacew on 2010-02-07 15:14:15

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

From 柳城 on 2010-02-08 13:12:46

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

From 秦大少 on 2010-02-11 19:57:58

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

From xinsinian2006 on 2010-02-24 21:52:24

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

From xinsinian2006 on 2010-02-24 21:58:59

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的也不返回正确结果,为什么呢?牛人

From 柳城 on 2010-02-25 11:22:14

#!/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"; }

From xinsinian2006 on 2010-02-25 18:11:19

谢谢啊,牛人就是牛人啊

Tags: explode, perl, split


Copyright © 2008-2009 柳城博客 | 中文NCBI | Lc-Archivers