使用Perl在目录中创建文件

使用Perl在目录中创建文件,perl,createfile,Perl,Createfile,如何创建一个新文件,我打算使用Perl中的open()在现有目录中写入该文件 我试着这样做: my $existingdir = './mydirectory'; open my $fileHandle, ">>", "$existingdir/filetocreate.txt" or die "Can't open '$existingdir/filetocreate.txt'\n"; 但这行不通 my $existingdir = './mydirectory'; mkdir

如何创建一个新文件,我打算使用Perl中的open()在现有目录中写入该文件

我试着这样做:

my $existingdir = './mydirectory';

open my $fileHandle, ">>", "$existingdir/filetocreate.txt" or die "Can't open '$existingdir/filetocreate.txt'\n";
但这行不通

my $existingdir = './mydirectory';
mkdir $existingdir unless -d $existingdir; # Check if dir exists. If not create it.
open my $fileHandle, ">>", "$existingdir/filetocreate.txt" or die "Can't open '$existingdir/filetocreate.txt'\n";
print $fileHandle "FooBar!\n";
close $fileHandle;
这应该对你有用

my $FILE;

open($FILE, ">>File.txt")||die("Cannot open file:".$!);

close($FILE);

您可以附加目录位置来代替File.txt。

而不是“无法打开…”说“无法打开…”:$!”以了解错误的确切原因。./mydirectory不存在,或者您没有写入perm。如果当前工作目录中存在
mydirectory
,并且您有权在其中创建,则可以正常工作。是的,此代码对我来说可以正常工作。要检查的另一件事:您确定Perl当前的工作目录是您认为的吗?检查CWD:-1 OP希望“在现有目录中”创建一个文件。这可能会使脚本运行而不会死掉,但它并不能诊断和解决实际问题。好吧,我看到答案被接受了。虽然我认为我的观点是正确的,但我将取消我的反对票,因为你成功地了解了OP对真正问题的看法!使用File::Path的
mkpath
比使用
mkdir