摘自:perldoc.perl.org
当".."操作符返回bool型变量的时候,有如下几个例子:
while (<>) {
print if (2 .. 6);
}
将会打印文件的 2 ~ 6 行。
同样的:
next if (1 .. /^$/); # 跳过前面的空白行
s/^/> / if (/^$/ .. eof); # 在正文前面加上 >
还可以这样使用:
# parse mail messages
while (<>) {
$in_header = 1 .. /^$/;
$in_body = /^$/ .. eof;
if ($in_header) {
# do something
} else { # in body
# do something else
}
}
下面的例子展示了".."和"..."的区别:
@lines = (" - Foo",
"01 - Bar",
"1 - Baz",
" - Quux");
foreach (@lines) {
if (/0/ .. /1/) {
print "$_\n";
}
}
这个程序只输出Bar那行。如果将".."换成"...",则还会输出Baz那行。
下面展示".."操作符返回列表型变量时候的几个例子:
for (101 .. 200) { print; } # print $_ 100 times
@foo = @foo[0 .. $#foo]; # an expensive no-op
@foo = @foo[$#foo-4 .. $#foo]; # slice last 5 items
同样可以用于字符串:
@alphabet = ("A" .. "Z");
$hexdigit = (0 .. 9, "a" .. "f")[$num & 15];
@z2 = ("01" .. "31"); print $z2[$mday];
还可以用于单个字符:
use charnames "greek";
my @greek_small = ("\N{alpha}" .. "\N{omega}");
use charnames "greek";
my @greek_small = map { chr } ord "\N{alpha}" .. ord "\N{omega}";