曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3416|回复: 0
打印 上一主题 下一主题

next 操作符

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2011-10-9 19:40:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
next 操作符如同 C 语言中 continue ,在 next 之后,程序会继续执行循环的下次迭代。考虑下面例子:
[code=perl]

#!/usr/bin/perl


while (<>) {
        chomp($_);
        foreach (split) {
                $total++;
                next if /bad/;
                $count{$_}++;
        }
}
print "total:$total\n";
print "------------------------------\n";


my @key = keys %count;
my @val = values %count;


foreach (@key) {
        print "$_\t";
}
print "\n";
foreach (@val) {
        print "$_\t";
}
print "\n";
[/mw_shl_code]
运行输出:
# ./next.pl
good well bad great well good bad
total:7
------------------------------
well    good    great
2       2     1
在上面的程序,while 循环使用
钻石操作符 <>  
读取命令行参数。这里,命令行参数由 "
good well bad great well good bad
" 7 个单词组成,在不指定接收变量的前提下,使用内置变量 $_ 来存放这个命令行。然后,在 foreach 循环里使用 split 函数对这 7 个单词进行分割,在默认情况下,split 是以“空白”作为分隔符的。在 foreach 循环中,遍历每一个单词,如果发现遇到 bad 这个单词,那么将结束本轮迭代,继续扫描下一个单词,如此直到扫描完整个命令行中的所有单词。此外,$count 是一个哈希,每个单词作为其“键”,而该单词的出现次数作为其键值。

和  last 操作符 一样,next 操作符也可以用在 5 种循环块中:for , foreach, while, until 和 裸块。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-3 23:40 , Processed in 0.082270 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表