Please correct me if I am wrong (sometimes I am) but I think that no warnings; works for the -w switch too. I was asking myself the same question a while ago. Try this:
#!/usr/bin/perl5.10 -w
my %hash1 = {
test1 => 'test1',
test2 => 'test2'
};
no warnings;
my %hash2 = {
test1 => 'test1',
test2 => 'test2'
};
use warnings;
my %hash3 = {
test1 => 'test1',
test2 => 'test2'
};
I get:
Reference found where even-sized list expected at ./test_warnings.pl l
+ine 3.
Reference found where even-sized list expected at ./test_warnings.pl l
+ine 15.
Now the question is, what is the difference if any between the -w switch and use warnings;?
Update: Answering myself, on perldoc it says: The warnings pragma is a replacement for the command line flag -w , but the pragma is limited to the enclosing block, while the flag is global.
Take my advice. I don't use it anyway.
|