2017-08-11 57 views
0

我是perl编程的初学者,当我尝试使用严格的代码并使用警告时,它会抛出一个错误,指出“全局符号$ str1需要显式包名”。我们是否需要使用任何其他包来使用除非关键字? ..please帮助

+0

距离['使用严格的;'(https://stackoverflow.com/questions/20889609/how-应该使用我的关键字在Perl中)你应该使用['my'](https://perldoc.perl.org/functions/my.html)声明变量。 '我的$ str1 = 0;'。 [为什么使用strict和warnings?](https://stackoverflow.com/questions/8023959/why-use-strict-and-warnings/8024241) – mkHun

+0

'my $ str1'是编译时检查的内容,但' $ str1'在同一个语句中(带有'defined')也被检查,并且还没有被声明。你不能声明它('my $ s')并且在同一个语句中使用它作为已经声明的('defined $ s')。首先申报。话虽如此,我觉得这是重复的。 – zdim

回答

0

试试这个代码,你需要声明$ STR1明确

use strict; 
use warnings; 
my $str1; 
$str1 = 0 unless defined $str1; 
+0

当然,这相当于'my $ str1 = 0;' – ikegami

相关问题