我正在尝试使用opendir来打开目录。当发生这种情况时,我得到错误:“不能使用未定义的值作为行的符号引用。”从搜索其他问题来看,这通常源于尝试使用超出范围的变量。从我可以告诉我的变量,我用于我的目录位置的所有内容都在范围内,并且我在函数中定义了opendir的处理程序,就像所有示例一样。请帮我弄清楚出了什么问题。它声称错误的第46行是双星。
use File::Find;
use File::Copy;
use File::Path;
my @imagelocations = ('/some/location1','/some/location2');
my $destination = '/some/location';
foreach $a (@imagelocations)
{
find (\&Move_Images, $a);
}
sub Move_Images
{
my $file = $_;
if (-e $file && $File::Find::dir eq $a && $file ne ".")
{
if (-M $file < 1)
{
my @folder = split(/_/, $file);
my ($var1,$var2,$var3) = @folder[0,1,4];
if (lc $var1 ne "manual" && lc $var1 ne "test")
{
if (-d ($File::Find::dir.'/'.$file))
{
$var3 = substr ($var3,1,-2);
my $open = $File::Find::dir."/$file";
**opendir (my $dh, $open) or die "Can't open directory $!";**
my @files = readdir($dh);
...