我想将我创建的文件输出到我在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);
一切正常,除了我要输出到我之前在脚本中创建的目录中的文件。
任何帮助都将不胜感激。
答案 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);
您需要指定要写入文件的路径。您可以使用绝对路径或相对路径,从当前工作目录开始。