2013-11-02 132 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