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

下面一个例子供参考一下
%        opendir(DIR, $htdocs . $path) or die "Open Failed $htdocs $path";
%        $category{0} = $mainCategory;
%
%        while (defined($file = readdir(DIR))) {
%                next if $file =~ /^\./;
%
%                if(-d "/var/lib/apache/htdocs" . $path . "/" .$file) {
%                        $key = $file;
%                        $category{$count} = $key;
%                        $subfirst = "Yes";
%
%                        opendir(SUBDIR, "/var/lib/apache/htdocs" . $path . "/" .$file) or die "Open Failed";
%       
%                        while (defined($file = readdir(SUBDIR))) {
%                                next if $file =~ /^\./;
%
%                                if ($subfirst eq "Yes") {
%                                        $subfirst = "No";
%                                        $string = "\"$path/$key/$file\"";
%                                } else {
%                                        $string .= ", \"$path/$key/$file\"";
%                                }
%                        }       
%
%                        closedir(SUBDIR);
%                } else {
%                        if ($first eq "Yes") {
%                                $first = "$path/$file";
%                                $mainstring = "\"$path/$file\"";
%                        } else {
%                                $mainstring .= ", \"$path/$file\"";
%                        }
%                }
%        }       
%
%        closedir(DIR);
既然已经赋值“$onedir = $_”,为什么不直接用$onedir 试一下,可以使用print做测试。
谢谢大家,觉得问题还是在chdir,chdir似乎只能进入某些目录,输入这些目录名时运行成功,其他则出错,原因未解:(谁有chdir的详细范例介绍呢?发我一份瞄瞄吧,谢谢哦^_^
你的chdir没错,错的是,你首先不该把chomp(my @destdir = <STDIN>);这一行注释掉,且你的chomp写成了chmop,因为你必须把目录名后的换行符去掉才能得到真正的目录名,从而,你的第一个foreach里面的<STDIN>应改为@destdir,其次,正如前面的朋友说的,你应该把opendir那句放到chdir那句之前,然后,既然你的第二个foreach的循环体里面使用的是$_,你就应该把foreach后的$file去掉