b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

scalar() perl_stata scalar_perl substr(11)

电脑杂谈  发布时间:2017-01-23 23:04:07  来源:网络整理

不过,拿数组引用来干这事更清晰一些。

split /PATTERN/, EXPR, LIMIT

split /PATTERN/, EXPR

split /PATTERN/

split

这个函数扫描字串中 EXPR 给出的分隔符,并且把该字串劈成一个子字串列表,在列表环境中返回生成的列表值,或者在标量环境中返回子字串的数量。(注:标量环境同时还令 split 把它的结果写到 @_,不过这个用法现在废弃了。)分隔符是用重复的模式匹配进行判断的,用的是 PATTERN 里给出的正则表达式,因此分隔符可以是任意大小,并且不一定在每次匹配都是一样的字串。(分隔符不象平常那样返回;我们在本节稍后讨论例外情况。)如果 PATTERN 完全不能匹配该字串,那么 split 把原始字串当作子字串返回。如果它匹配了一次,那么你就得到两个子字串,以此类推。你可以在 PATTERN 里使用正则表达式修饰词,比如 /PATTERN/i,/PATTERN/x,等等。如果你以模式 /^/ 进行,那么就假设是 //m 修饰词。

如果声明了 LIMIT 并且是正的,该函数成不超过那么多的域(当然如果它用光了分隔符,那么是可以成比较少的子字串的)。如果 LIMIT 是负数,那就把它当作声明了任意大的 LIMIT。如果省略了 LIMIT 或者是零,那么将从结果中删除结尾的空域(那些潜在的 pop 用户应该好好记住)。如果省略了 EXPR,那么该函数就 $_ 字串。如果还省略了 PATTERN 或者它是一个文本空格,“ ”,那么该函数对空格进行操作,/\s+/,但是忽任何开头的空格。

可以任意长度的字串:

   @chars  = split //,    $word;
   @fields  = split /:/,   $line;
   @words = split " ",   $paragraph;
   @lines = split /^/,   $buffer;

一个可以匹配空串或者其他的一些比空串长的字串的模式(比如,一个由任意一个字符加上 * 或者? 修饰的模式)将把 EXPR 的值成独立的字符,只要它匹配字符之间的空串;非空匹配会象通常的情况那样忽略匹配过的分隔符字符。(换句话来说,一个模式不会在一个点匹配多过一次,即使它和一个零宽匹配也如此。)比如:

   print join ':', split / */, 'hi there';

生成输出“h:i:t:h:e:r:e”。空白消失了是因为它作为分隔符一部分匹配。举一个小例子,空模式 // 简单地成独立的字符,而空格并不消失。(对于正常模式匹配而言,// 模式会在上一次成功匹配处重复,但是 split 的模式免受此过。)

LIMIT 参数只字串的一部分:

   ($login, $passwd, $remainder) = split /:/, $_, 3;

我们鼓励你把你的字串成这样的列表名字,这样你的代码就有了自文档的特性。(可以用于出错检查,请注意如果字串里比三个域少,那么 $remainder 将会是未定义。)当给一个列表赋值的时候,如果省略了 LIMIT,那么 Perl 提供一个 LIMIT,其数值比列表中的变量数量大一,以此避免不必要的工作。对于上面的,LIMIT 缺省时是 4,而 $remainder 将只收到第三个域,而不是所有剩下的域。在时间要求很严格的应用里,避免成比我们需要的更多的域是一个好习惯。(强大的语言的问题就是,它给你强大的功能的是以花费在时间上的愚蠢为代价的。)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28372-11.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...