Perl split函数可以这样使用:
$info="Caine:Michael:Actor:14,LeafyDrive"
@personal=split(/:/,$info)
其结果是:@personal=("Caine","Michael","Actor","14,LeafyDrive")
◆如果我们已经把信息存放在$_变量中,那么可以这样:
@personal=split(/:/)
如果各个域被任何数量的冒号分隔,可以用RE代码进行分割:
$_="Capes:Geoff::Shotputter:::BigAvenue"
@personal=split(/:+/)
其结果是:@personal=("Capes","Geoff","Shotputter","BigAvenue")
但是下面的代码:
$_="Capes:Geoff::Shotputter:::BigAvenue"
@personal=split(/:/)
的结果是:@personal=("Capes","Geoff","","Shotputter","","","BigAvenue")
你这个数据看起来是文本,可以用记事本打开确认,如果是文本数据,PERL读取是很容易的,open打开文件,以行为单位读入,使用split分为数组,然后取你需要的就可以了,大概的代码如下: my ($str,@arr)open(FD,'xxx.txt')while($str=){ @arr=sp...http://perldoc.perl.org/functions/split.htmlsplit有4种使用方式,没有你想要的省略Pattern而留有Expr的情况。
split /PATTERN/,EXPR,LIMIT
split /PATTERN/,EXPR
split /PATTERN/
split
@number = split, $number这句话,实际的意思是@number=split(/ /,$_),$number
然后在Perl中= *** 作符的优先级比,高,所以它会先执行@number=split(/ /,$_),然后再执行$number。
$_为空,所以 @number的结果可想而知
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)