Perl中实现循环的各种方法(基础)
2013-03-28 13:43
232 查看
Perl中有多种方法实现循环:
常规的while循环:
Perl同样支持until关键字:
do循环基本跟等价于上面的形式(当@array是空的时候,将会有一个警告信息):
和
基本的C风格循环同样有效。注意,我们如何把一个my变量放在for语句中,这是通过在循环范围内定义变量$i实现的:
for循环被认为是古老的形式,并且尽可能避免使用。原生的列表迭代更美观。注意:和PHP不一样,for和foreach关键字是同义词。我们只用更容易阅读的方式:
如果你需要索引, range operator可以创建一个匿名整型列表:
你不能去迭代一个哈希变量。但是,你可以迭代它的键值。使用keys内置函数,获取哈希变量的所有键值数组。然后使用foreach方法,就像数组一样:
因为哈希变量没有顺序,键值可能以任何顺序被返回。使用sort内置函数对键值数组排序,按照字母表从小到大的方式:
如果使用默认的迭代,你只能在循环内部放置一条语句,你可以使用超级短的循环语法:
常规的while循环:
my $i = 0; while($i < scalar @array) { print $i, ": ", $array[$i]; $i++; }
Perl同样支持until关键字:
my $i = 0; until($i >= scalar @array) { print $i, ": ", $array[$i]; $i++; }
do循环基本跟等价于上面的形式(当@array是空的时候,将会有一个警告信息):
my $i = 0; do { print $i, ": ", $array[$i]; $i++; } while ($i < scalar @array);
和
my $i = 0; do { print $i, ": ", $array[$i]; $i++; } until ($i >= scalar @array);
基本的C风格循环同样有效。注意,我们如何把一个my变量放在for语句中,这是通过在循环范围内定义变量$i实现的:
for(my $i = 0; $i < scalar @array; $i++) { print $i, ": ", $array[$i]; } # $i has ceased to exist here, which is much tidier.
for循环被认为是古老的形式,并且尽可能避免使用。原生的列表迭代更美观。注意:和PHP不一样,for和foreach关键字是同义词。我们只用更容易阅读的方式:
foreach my $string ( @array ) { print $string; }
如果你需要索引, range operator可以创建一个匿名整型列表:
foreach my $i ( 0 .. $#array ) { print $i, ": ", $array[$i]; }
你不能去迭代一个哈希变量。但是,你可以迭代它的键值。使用keys内置函数,获取哈希变量的所有键值数组。然后使用foreach方法,就像数组一样:
foreach my $key (keys %scientists) { print $key, ": ", $scientists{$key}; }
因为哈希变量没有顺序,键值可能以任何顺序被返回。使用sort内置函数对键值数组排序,按照字母表从小到大的方式:
foreach my $key (sort keys %scientists) { print $key, ": ", $scientists{$key}; }
如果使用默认的迭代,你只能在循环内部放置一条语句,你可以使用超级短的循环语法:
print $_ foreach @array;
相关文章推荐
- js循环数组各种方法array 汇总-基础
- DEDECMS首页循环调用一级栏目和二级栏目的实现方法
- 各种排序算法的分析及java实现 分类: B10_计算机基础 2015-02-03 20:09 186人阅读 评论(0) 收藏
- Python_cmd的各种实现方法及优劣(subprocess.Popen, os.system和commands.getstatusoutput)
- 实现UIScrollView循环滚动的三种方法
- 用PHP实现浏览器点击下载各种格式文档的方法详解【txt apk等等】
- JAVA使用循环和递归方法实现斐波拉切数列
- Java 基础-- 实现java多线程的方法
- js实现各种复制到剪贴板的方法(分享)
- JAVA 基础笔记|多线程的实现方法
- 各种平台下Perl模块的安装方法
- iOS开发中实现新闻图片的无限循环展示的方法
- 数据结构中的各种排序方法-JS实现
- Python开发基础-Day20继承实现原理、子类调用父类的方法、封装
- C/C++实现栈的各种方法代码
- 【java基础 4】树形结构数据呈现的非递归算法(循环)实现
- JAVA基础-实现多线程的四种方法
- Thinkphp中数据按分类嵌套循环实现方法
- java基础--while循环实现水仙花数
- 程序实现自启动的各种方法及编程实现