如何将文件输出到特定目录?

时间:2012-09-27 15:56:35

标签: perl

我想将我创建的文件输出到我在perl脚本中创建的目录中。

我可以创建目录

use File::Path;

$dir = "foo/";
mkpath($dir);

和我的档案

$FILE = "output.txt";
unless(open $filehandle, ">", $FILE){
  die "\nUnable to create $FILE:\n$!";
}
printf $filehandle "writing stuff to my file\n";
printf $filehandle "and some more stuff\n";
close($filehandle);

一切正常,除了我要输出到我之前在脚本中创建的目录中的文件。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

您可以使用chdir更改目录,也可以将目录添加到文件名中:

chdir($dir) or die "Failed to cd to $dir: $!";
# or
$FILE = "$dir/output.txt";

但不要两者兼顾。

答案 1 :(得分:2)

use File::Spec::Functions;
my $dir = "/somedir";
my $FILE = "output.txt";

my $path = catfile($dir, $FILE)
my $filehandle

unless(open $filehandle, '>',  $path){
  die "\nUnable to create $FILE\n";
}
close($filehandle)

与其他人没有太大区别,但您可以使用catfile根据当前操作系统制作路径。您不希望在移植代码时更改构建路径的方式..

此外,使用lexical filehandler比使用Bareword(FILE)更好。

答案 2 :(得分:1)

此代码将按您的要求执行:

$FILE = "$dir/output.txt";
unless(open $filehandle, ">", $FILE){
  die "\nUnable to create $FILE:\n$!";
}
printf $filehandle "writing stuff to my file\n";
printf $filehandle "and some more stuff\n";
close($filehandle);

您需要指定要写入文件的路径。您可以使用绝对路径或相对路径,从当前工作目录开始。