Even if the strict and warnings options are turned on, there are no errors or warnings in the following code.
Copy the codeThe code is as follows:
#!/usr/bin/perl
use strict;
use warnings;
sub test {
$a = 1;
$b = 2;
print $a, "\n";
print $b, "\n";
}
test();
1;
Here is the explanation of these two variables in the perl documentation:
perldoc perlvar
$a
$b Special package variables when using sort(), see "sort" in perlfunc.
Because of this specialness $a and $b don't need to be declared (using use vars, or our()) even when using the "strict 'vars'" pragma. Don't lexicalize them with "my $a" or "my $b" if you want to be able to use them in the sort() comparison block or function.