perl 的split()如何用?

xivi 2002-09-12 12:19:57
1>请问在perl 中 split()函数的具体作用是什么?

2>怎样用?

3>在那里用?

4>在什么情况下要用到?

5>它是实现什么样的功能的?请举出例子详细说明一下
...全文
2331 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tl66 2002-09-17
  • 打赏
  • 举报
回复
哦, 发现上面写错了, 是 @array = split(/(\d+)/,$String);
tl66 2002-09-17
  • 打赏
  • 举报
回复
前面两位已经讲的比较清楚了,我再补充一点:
将一个标量按给定的正则表达式分解为数组时,默认时正则表达式的内容是不存入数组的,比如:

$String = 'fdkasgk 2343 dasfas';

@array = split(/\d+/,$String);
这时@array的内容是(''fdkasgk ',' dasfas');

如果要记录正则表达式的内容,则:
@array = split((/(\d+)/),$String);
这时@array的内容是('fdkasgk ','2343',' dasfas');

kyotowolf 2002-09-12
  • 打赏
  • 举报
回复
split(/=/,$pair,5);
表示最多分成5个部分,其余的忽视
1q1 2002-09-12
  • 打赏
  • 举报
回复
一般用于将一个标量按给定的正则表达式分解为数组,
用法如:@pairs = split(/&/, $buffer);
经常用在cgi程序的表单数据解码,你在网上几个perl写的cgi程序,很容易发现类似下面的代码:

#!/usr/bin/perl

$cgiurl = "http://localhost/perl/chat/chat.pl";
$text_color="black";
$bg_color="#ffffff";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# 分割资料,
@pairs = split(/&/, $buffer);
#转换输入中的特殊字符,把URL中的加号转化为空格等。
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
.........;

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧