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

2番目の行には、前に開いていないクローズパレンがあります。

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 に答える