in reply to declaration of variables

If you don't give a value to the variable, then its value is undefined, which is different from having the empty string as value.
The list notation ($var) is normally used to declare several variables at once, like in
my ($a, $b, $c) = (1, 2, 3);
The first and third line in your text have the same effect, and the second and fourth line have the same effect.
my $a; my $b = ""; print "\$a is not defined\n" unless defined $a; print "\$b is defined\n" if defined $b;


daniel.