1

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

我已经阅读了 Stackoverflow 上的各种内容,这些内容都是基于我的代码。

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

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

4

3 回答 3

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变量超出范围时,关闭将是自动的。

于 2012-09-17T22:00:01.240 回答
0

我喜欢将IO::All模块用于文件 io。

use IO::All

my $windowsfile = "winUserfile-$User_ID-$datetime.csv";
io($windowsfile) > "User_ID, Expression\n";
于 2012-09-17T16:52:08.923 回答
-1
my $windowsfile = "winUserfile-$User_ID-$datetime.csv";
open (winUserfile, ">>$windowsfile") or die "$!";
print winUserfile "User_ID, Expression\n";
close winUserfile;
于 2012-09-17T16:37:54.210 回答