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不是已空白符分割标量吗? 展开
@number = split, $number;
print @number;
运行程序:
root@luis-VirtualBox:~# ./perl.pl
root@luis-VirtualBox:~#
为什么没有输出?默认情况下split不是已空白符分割标量吗? 展开
1个回答
展开全部
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有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(/ /,$_)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询