请教(急):我是perl新手,刚编了个小脚本,调不通,急待高手指点

请教(急):我是perl新手,刚编了个小脚本,调不通,急待高手指点

具体脚本如下:
貌似调试问题出在chdir上,大家都帮帮忙啊,小女子这里先谢过啦^_^
#!/usr/bin/perl -w

use File::find;

sub remove
{
     print "Deleting $_[0] \n";
     #the current directory is empty
     if(-d)
     {
          rmdir or die "$! \n";
          next;
     }
     #delete file
     unlink $_[0] or die "$! \n";
}

print "please input the dest directory: \n";
#chmop(my @destdir = <STDIN>);
foreach(<STDIN>)
{
    my $onedir = $_;
    chdir($_) ||
         die "Cannot change the directory to $_: $!\n";
    opendir DH, $_ or die "Cannot open the $_: $!\n";
    foreach $file(readdir DH)
    {
         print "One file in $onedir is $_.\n";
         #finddepth will recursion the directory
         finddepth(\&remove,$_);
    }
    closedir DH;
}
. ..
楼上什么意思啊,是不是问的很幼稚啊:(我是刚学的,解决不了才来求救的....


QUOTE:
原帖由 aimeecx 于 2008-8-4 23:33 发表
楼上什么意思啊,是不是问的很幼稚啊:(我是刚学的,解决不了才来求救的....

不是,可能你理解错了,我是指你在读取文件夹的时候,好像没有考虑到 .  ..  这两个文件。
你可以排除这两个试试。
哦,不好意思,嘿嘿
在unix环境下好像没有. ..这两种文件,所以我就把它省了,调试时提示错误在chdir上,“无此文件名或目录”......找了下chdir相关的东西,也没有找到很明确的用例,疑惑ing......


QUOTE:
原帖由 aimeecx 于 2008-8-4 23:45 发表
哦,不好意思,嘿嘿
在unix环境下好像没有. ..这两种文件,所以我就把它省了,调试时提示错误在chdir上,“无此文件名或目录”......找了下chdir相关的东西,也没有找到很明确的用例,疑惑ing......

应该有的,试试

[Copy to clipboard] [ - ]
CODE:
foreach $file(grep !/^\.\.?/, readdir DH )

还是不行,执行不到下面,到chdir那就掐住了,提示:no such file or directory!
不知道怎么回事,晕哦:(


QUOTE:
原帖由 aimeecx 于 2008-8-5 00:09 发表
还是不行,执行不到下面,到chdir那就掐住了,提示:no such file or directory!
不知道怎么回事,晕哦:(



[Copy to clipboard] [ - ]
CODE:
my $onedir = $_;

前加chomp;而且,

[Copy to clipboard] [ - ]
CODE:
chdir($_) ||
         die "Cannot change the directory to $_: $!\n";
    opendir DH, $_ or die "Cannot open the $_: $!\n";

矛盾,应该先opendir 再chdir

也许, 应该把 $_ 打出来看看, 到底送进去的和想要是不是一致的结果 .
unix啊 没得办法 好像好多人在u环境下用perl