perl中的变量范围

时间:2013-11-02 20:03:07

标签: perl variables cgi global

我在严格模式下使用CGI并且与变量有点混淆。我正在读一个有两行的文件。存储在两个变量中。但是当我尝试使用html输出它时,它表示全局变量错误

这就是我正在做的事情

 open TEXT, "filename";
 $title = <TEXT>;
 $about = <TEXT>; 
 close TEXT;

但是这会给出全局变量错误。什么是解决这个问题的最佳方法?

1 个答案:

答案 0 :(得分:4)

您需要使用my声明变量以使其范围成为本地。这是最佳做法,使用strict

时必须遵守
use strict;
use warnings;

open my $fh, '<', 'filename' or die $!;
my ( $title, $about ) = <$fh>;
close $fh;

进一步改进:

  1. 避免使用裸字文件句柄(例如FILE)。而是使用本地文件句柄,例如my $fh
  2. 处理文件处理时使用die的错误处理
  3. @Suic
  4. 建议的$title$about的合并分配
  5. use warnings显示 @TLP
  6. 指出的问题