我一直收到警告:名称“main :: URLLIST”只使用一次:可能的拼写错误

时间:2015-12-27 15:55:11

标签: regex perl

目前我正在学习如何在课程中使用perl

http://www.perl.com/pub/2000/11/begperl3.html

我现在遇到了元字符部分,当我在eclipse中运行代码时,我收到以下错误: 名称“main :: URLLIST”仅使用一次:可能的拼写错误Metacharacters.pl

#!/usr/bin/perl

use strict;
use warnings;
use feature ":5.10"; 

for my $line (<URLLIST>) {
    # "If the line starts with http: and ends with html...."
    if (($line =~ /^http:/) and
        ($line =~ /html$/)) {
        say $line;
    }
}

请你告诉我为什么会这样。

1 个答案:

答案 0 :(得分:1)

您将URLLIST视为文件句柄,但您从未打开它。只需使用<>,它将从作为参数传递的文件名读取,或者如果没有提供参数则从STDIN读取。

提示:您应该使用while (my $line = <>)而不是for my $line (<>),因为后者在循环开始之前不必要地将整个文件加载到内存中。