[英]Why is this Perl IO code not working?
為什么此代碼不起作用:
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);
在第一個示例中,您聲明並分配了標量$OUTFILE_FOTO
,但是稍后要引用它,就好像它是一個裸OUTFILE_FOTO
OUTFILE_FOTO OUTFILE_FOTO
。 在print
和close
時在其前面加上$
。
現在應該可以使用了。 看到我的$ 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.