循环是Perl中用于重复执行代码块的重要结构。本文将介绍Perl中的各种循环类型及其用法,涵盖常见场景和控制技巧。


目录

  1. 循环概述
  2. for 循环
  3. foreach 循环
  4. while 循环
  5. until 循环
  6. 循环控制
  7. 参考资料

1. 循环概述

Perl 提供多种循环结构,用于迭代数据或重复执行任务:

  • forforeach:遍历范围或列表。
  • whileuntil:基于条件执行。
  • 支持循环控制语句(如 nextlast)。

站内链接:了解条件语句,见 Perl 条件语句


2. for 循环

基本形式

类似C语言的计数循环:

use strict;
use warnings;

for (my $i = 0; $i < 5; $i++) {
    print "$i ";
}
print "\n";  # 输出:0 1 2 3 4

范围操作符

使用 .. 简化:

for my $j (1..5) {
    print "$j ";
}
print "\n";  # 输出:1 2 3 4 5

3. foreach 循环

专门用于遍历列表或数组,forforeach 在Perl中可互换:

遍历数组

my @fruits = ("apple", "banana", "orange");
foreach my $fruit (@fruits) {
    print "$fruit\n";
}

默认变量 $_

省略循环变量时使用 $_

foreach (@fruits) {
    print "$_\n";  # apple, banana, orange
}

站内链接:了解数组操作,见 Perl 数组


4. while 循环

条件为真时循环:

my $count = 0;
while ($count < 3) {
    print "Count: $count\n";
    $count++;
}

读取输入

print "输入内容(Ctrl+D或Ctrl+Z结束):\n";
while (my $line = <STDIN>) {
    chomp($line);
    print "你输入了:$line\n";
}

5. until 循环

条件为假时循环,是 while 的反向形式:

my $num = 5;
until ($num <= 0) {
    print "$num ";
    $num--;
}
print "\n";  # 输出:5 4 3 2 1

6. 循环控制

next

跳到下一次迭代:

for my $i (1..10) {
    next if $i % 2 == 0;  # 跳过偶数
    print "$i ";
}
print "\n";  # 输出:1 3 5 7 9

last

退出循环:

my $sum = 0;
for my $x (1..100) {
    $sum += $x;
    last if $sum > 50;  # 超过50时停止
}
print "Sum: $sum\n";

redo

重新执行当前迭代:

my $try = 0;
for (1..3) {
    $try++;
    if ($try < 2) {
        redo;  # 重复当前循环
    }
    print "$try\n";
}

7. 参考资料

站内链接

出站链接

其他资源

  • 《Learning Perl》 – 循环章节。
  • X社区:搜索 #PerlLoops 获取代码示例。

这篇指南详细介绍了Perl循环的各种形式及其控制方法。如果需要更深入的内容(比如嵌套循环或与哈希结合),请告诉我!