为什么此代码不起作用:
my $file_handle = $cgi->upload('file');
open my $OUTFILE_FOTO, '>>', "image/$new_file.$extension";
while (<$file_handle>) {
print OUTFILE_FOTO $_;
}
close($file_handle);
close(OUTFILE_FOTO);
但是这段代码确实有效:
my $file_handle = $cgi->upload('file');
open( OUTFILE_FOTO, '>>', "image/$new_file.$extension" );
while (<$file_handle>) {
print OUTFILE_FOTO $_;
}
close($file_handle);
close(OUTFILE_FOTO);
答案 0 :(得分:2)
在第一个示例中,您正在声明并指定标量$OUTFILE_FOTO
,但您稍后将其称为赤字OUTFILE_FOTO
。在$
和print
。
close
答案 1 :(得分:1)
现在应该可以了。当您看到我的$ OUTFILE_FOTO时,您已经创建了一个文件句柄变量,这是实现perl最佳实践的方法之一。但是你已经在程序中提供了Bareword - OUTFILE_FOTO。你可以尝试使用use strict来避免这些错误;并使用警告;
my $file_handle = $cgi->upload('file');
open my $OUTFILE_FOTO, '>>', "image/$new_file.$extension";
while (<$file_handle>) {
print $OUTFILE_FOTO $_;
}
close($file_handle);
close($OUTFILE_FOTO);