perl,split的用法问题

$number="123hehehaha";@number=split,$number;print@number;运行程序:root@luis-VirtualBox:~#... $number = "123 hehe haha";
@number = split, $number;
print @number;

运行程序:
root@luis-VirtualBox:~# ./perl.pl
root@luis-VirtualBox:~#

为什么没有输出?默认情况下split不是已空白符分割标量吗?
展开
 我来答
liucy1983
2012-05-20 · TA获得超过288个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:214万
展开全部
http://perldoc.perl.org/functions/split.html

split有4种使用方式,没有你想要的省略Pattern而留有Expr的情况。
split /PATTERN/,EXPR,LIMIT
split /PATTERN/,EXPR
split /PATTERN/
split

@number = split, $number;这句话,实际的意思是@number=split(/ /,$_),$number;
然后在Perl中=操作符的优先级比,高,所以它会先执行@number=split(/ /,$_),然后再执行$number。
$_为空,所以 @number的结果可想而知
追问
我对于第四种使用方式不太理解,就是单独的一个split ,可以讲解下用法吗?谢谢
追答
If EXPR is omitted, splits the $_ string. If PATTERN is also omitted, splits on whitespace (after skipping any leading whitespace). 

如果EXPR被省略,将会拆分$_。如果Pattern也省了,那么将会把空格当成分隔。

所以两个都省的话,就是等于split(/ /,$_)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式