in reply to change unintialized warning

To build on LanX's note:

     $test1 = $test2 = $test3 = 6;

Is better written as

     use strict;

     my $test1 = 6;
     my $test2 = 6;
     my $test3 = 6;

Or even better as

     use strict;

     my $DEFAULT_TEST_VALUE = 6;

     my $test1 = $DEFAULT_TEST_VALUE;
     my $test2 = $DEFAULT_TEST_VALUE;
     my $test3 = $DEFAULT_TEST_VALUE;

And clever you -- you just stumbled onto one of the many, many, many reasons why.

That said, the if(!defined($var)) approach is about as graceful as it gets, although you might be able to make use of the new-fangled // operation to save some typing.