Perl(opendir):接收“不能将未定义的值用作第46行的符号引用”。

时间:2016-11-15 23:11:46

标签: perl opendir

我正在尝试使用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);
                    ...

0 个答案:

没有答案