【问题标题】:Why is this Perl IO code not working?为什么这个 Perl IO 代码不起作用?
【发布时间】:2014-09-29 13:23:09
【问题描述】:

为什么这段代码不起作用:

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);

【问题讨论】:

    标签: perl


    【解决方案1】:

    在第一个示例中,您声明并分配了一个标量 $OUTFILE_FOTO,但您稍后引用它时就好像它是一个裸词 OUTFILE_FOTO。在printclose 中为其添加$

    【讨论】:

      【解决方案2】:

      现在应该可以了。当您看到我的 $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);
      

      【讨论】:

        猜你喜欢
        • 2018-11-05
        • 2012-02-22
        • 2023-03-03
        • 2017-10-02
        • 2016-07-10
        • 2010-12-14
        • 2017-04-09
        • 2013-01-30
        • 2014-05-23
        相关资源
        最近更新 更多