Biến được nội suy chỉ trong chuỗi sử dụng dấu ngoặc kép "
. Nếu bạn sử dụng dấu ngoặc đơn '
số $
sẽ được hiểu là một đô la.
Hãy thử với ">>$files"
thay vì '>>$files'
Luôn luôn sử dụng
use strict;
use warnings;
Nó sẽ giúp để có được một số cảnh báo nhiều hơn nữa.
Trong mọi trường hợp cũng khai báo các biến
my $files = "...";
Bạn cũng nên kiểm tra giá trị trở lại của open
:
open OUTFILE, ">>$files"
or die "Error opening $files: $!";
Sửa: Như đã đề cập trong các ý kiến, một phiên bản với ba đối số mở và một vài cải tiến có thể khác
#!/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";
Bạn cũng có thể cài đặt Perl :: Phê bình một công cụ hữu ích để kiểm tra các vấn đề thường gặp và lỗi trong mã Perl – Matteo
Bạn nên luôn sử dụng phiên bản ba đối số mở bằng các tập tin từ vựng 'mở tập tin $ của tôi,' >> ' , $ file hoặc die 'Horribly'; ' – dgw
Tôi đã gặp phải sự cố khi biên dịch. Sử dụng die thay vì –