我正在尝试写出一个文件,其中文件名是从变量创建的(名称+用户ID +日期和时间+文件扩展名)。
我已经在Stackoverflow上阅读了各种基于我的代码的东西。
my $windowsfile = "winUserfile-$User_ID-$datetime.csv";
open winUserfile, ">>", $windowsfile) or die "$!";
print winUserfile "User_ID, Expression\n";
close winUserfile;
我认为这会起作用,但我收到语法错误。有人能帮忙吗?
答案 0 :(得分:1)
你的第二行有一个没有前面打开的近距离:
open winUserfile, ">>", $windowsfile) or die "$!";
你可能想先打开它
open(winUserfile, ">>", $windowsfile) or die "$!";
或者完全没有在这里完全打扰他们,因为在这种情况下他们是可选的
open winUserfile, ">>", $windowsfile or die "$!";
此外,使用裸字文件句柄是不好的方式,因为这会创建全局。最好使用词法:
open my $winUserfile, ">>", $windowsfile or die "$!";
print $winUserfile "User_ID, Expression\n";
然后你不需要关闭它;当$winUserfile
变量超出范围时,关闭将自动完成。
答案 1 :(得分:0)
我喜欢将IO::All
模块用于文件io。
use IO::All
my $windowsfile = "winUserfile-$User_ID-$datetime.csv";
io($windowsfile) > "User_ID, Expression\n";
答案 2 :(得分:-1)
my $windowsfile = "winUserfile-$User_ID-$datetime.csv";
open (winUserfile, ">>$windowsfile") or die "$!";
print winUserfile "User_ID, Expression\n";
close winUserfile;