簡體   English   中英

為什么此Perl IO代碼不起作用?

[英]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 printclose時在其前面加上$

現在應該可以使用了。 看到我的$ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM