2013-11-02 83 views
0

我在严格模式下使用CGI,并且与变量混淆了一点。我正在阅读有两行文件。将两者存储在两个变量中。但是当我尝试他们使用HTML outputing,它说,全局变量错误perl中的变量范围

这是我在做什么

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

但是这给全局变量错误。最好的解决办法是什么?

+4

没有错误说“全局变量错误”。永远不要给出近似的错误信息 - 总是给出* exact *消息。 – TLP

回答

4

您需要声明变量my以使其作用域为本地。

  1. 避免的裸词文件句柄(例如FILE):使用strict

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

    进一步改进时,这是最好的做法和强制性的。而是使用本地文件句柄如my $fh

  2. 二手错误与文件处理问题时有die处理
  3. @Suic
  4. use warnings建议显示什么错按指出的$title$about组合分配@TLP
+0

我也尝试过,但是当我尝试在下面的html部分中访问它时,它并没有显示出来。 – user2055171

+0

print << END HTML

$ title

END_HTML; – user2055171

+2

'使用警告'会告诉你方式。 – TLP