You are absolutely right. There is no difference. A hash (or array) declaration creates an empty data structure.
- , undefined. , .
use Data::Dumper;
my $scalar;
my $scalar2 = '';
print Dumper \$scalar;
print Dumper \$scalar2;
my %hash;
my %hash2 = ();
print Dumper \%hash;
print Dumper \%hash2;
my @array;
my @array2 = ();
print Dumper \@array;
print Dumper \@array2;
defined , :
" ( ) . , . Perl. :"