我试图在perl中执行chdir,但我就是不能理解哪里出了问题。这段代码可以工作。
chdir('C:\Users\Server\Desktop')但是,当尝试获取用户的输入时,它不起作用。我甚至尝试使用chomp来删除任何可能出现的空格。
print "Please enter the directory\n";
$p=<STDIN>;
chdir ('$p') or die "sorry";
system("dir");另外,有人能解释一下在这种情况下我如何使用系统命令,以及它与chdir有何不同。
最终目标是访问两个文件夹,检查名称相同的文件(例如:如果两个文件夹都有一个名为“water”的文件),并将具有相同名称的文件复制到第三个文件夹中。
发布于 2013-06-28 16:21:23
chdir('$p')尝试更改为字面意思为$p的目录。去掉单引号:
chdir($p)此外,在读入后,您可能希望删除换行符(除非目录名确实以换行符结尾):
$p = <STDIN>;
chomp($p);但是,如果您只是想能够运行dir并在脚本中获得结果,那么您可能不想这样做。首先,系统运行一个命令,但不捕获它的输出。其次,你可以这样做:
opendir my $dirhandle, $p or die "unable to open directory $p: $!\n";
my @files = readdir $dirhandle;
closedir $dirhandle;并完全避免chdir和运行命令提示符命令。
发布于 2013-06-28 23:13:15
我将这样使用它。
chdir "C:/Users/Server/Desktop“
上面的方法适用于我。
https://stackoverflow.com/questions/17360285
复制相似问题