考慮してください:
#!/usr/local/bin/Perl
$files = "C:\\Users\\A\\workspace\\CCoverage\\backup.txt";
unlink ($files);
open (OUTFILE, '>>$files');
print OUTFILE "Something\n";
close (OUTFILE);
上記はPerlで書いた簡単なサブルーチンですが、うまくいかないようです。どうすればそれを機能させることができますか?
変数は、二重引用符を使用した文字列でのみ補間されます"
。単一引用符を使用する場合'
the $
はドルとして解釈されます。
">>$files"
の代わりに '>>$files'
常に使用する
use strict;
use warnings;
さらに警告を表示するのに役立ちます。
いずれにしても変数を宣言する
my $files = "...";
open
の戻り値も確認する必要があります。
open OUTFILE, ">>$files"
or die "Error opening $files: $!";
編集:コメントで示唆されているように、3つの引数が開いたバージョンと、その他のいくつかの可能な改善点
#!/usr/bin/Perl
use strict;
use warnings;
# warn user (from perspective of caller)
use Carp;
# use Nice English (or awk) names for ugly punctuation variables
use English qw(-no_match_vars);
# declare variables
my $files = 'example.txt';
# check if the file exists
if (-f $files) {
unlink $files
or croak "Cannot delete $files: $!";
}
# use a variable for the file handle
my $OUTFILE;
# use the three arguments version of open
# and check for errors
open $OUTFILE, '>>', $files
or croak "Cannot open $files: $OS_ERROR";
# you can check for errors (e.g., if after opening the disk gets full)
print { $OUTFILE } "Something\n"
or croak "Cannot write to $files: $OS_ERROR";
# check for errors
close $OUTFILE
or croak "Cannot close $files: $OS_ERROR";