使用Perl中的变量创建文件名

时间:2012-09-17 16:36:42

标签: perl

我正在尝试写出一个文件,其中文件名是从变量创建的(名称+用户ID +日期和时间+文件扩展名)。

我已经在Stackoverflow上阅读了各种基于我的代码的东西。

my $windowsfile = "winUserfile-$User_ID-$datetime.csv";
open winUserfile, ">>", $windowsfile) or die "$!";
print winUserfile "User_ID, Expression\n";
close winUserfile;

我认为这会起作用,但我收到语法错误。有人能帮忙吗?

3 个答案:

答案 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;