gpt4 book ai didi

Perl readdir 警告 - 名称 "main::DIR"仅使用一次 : possible typo

转载 作者:行者123 更新时间:2023-12-04 10:01:01 25 4
gpt4 key购买 nike

我有一个脚本,它列出了特定目录中可能的文件。该代码工作正常,但如何避免此警告?

#!/usr/bin/perl

use strict;
use warnings;
use autodie;

my $logpath = "C:/Users/Vinod/Perl/Log";

opendir(DIR, $logpath);
while (my $file = readdir(DIR)) {

next unless (-f "$logpath/$file");
print "FILENAME:$file\n";

}
closedir(DIR);

编译或运行脚本时显示的警告是:
$ perl -cw log_fetch.pl
Name "main::DIR" used only once: possible typo at log_fetch.pl line ...
log_fetch.pl syntax OK

最佳答案

这似乎是使用 use autodie; 的一个奇怪的副作用。 .

可以按如下方式使警告静音:

sub x { *DIR }  # Silence spurious "used only once" warning.

但是,您不必要地使用了全局变量 ( *DIR )。使用词法变量会好得多,这将解决问题。
opendir(my $DIR, $logpath);

关于Perl readdir 警告 - 名称 "main::DIR"仅使用一次 : possible typo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61822681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com