SoFunction
Updated on 2025-03-03

Introduction to $a and $b in perl

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.