Odd number of elements in hash assignment at ...
####
use strict;
use warnings;
my $obj = bless do { \my $x }, __PACKAGE__; # current package, e.g. 'main'
print "wrong:\n";
$obj->wrong(name =>'John', age => 28);
print "-" x 50, "\n";
print "right:\n";
$obj->right(name =>'Paul', age => 30);
sub wrong {
warn +(caller(0))[3],'(',join(',',map "'$_'", @_),")\n";
my %h = @_;
print "$_ => $h{$_}\n" for keys %h;
}
sub right {
warn +(caller(0))[3],'(',join(',',map "'$_'", @_),")\n";
my $self = shift;
my %h = @_;
print "$_ => $h{$_}\n" for keys %h;
}
__END__
wrong:
main::wrong('main=SCALAR(0x8167870)','name','John','age','28')
Odd number of elements in hash assignment at - line 17.
Use of uninitialized value in concatenation (.) or string at - line 18.
28 =>
John => age
main=SCALAR(0x8167870) => name
--------------------------------------------------
right:
main::right('main=SCALAR(0x8167870)','name','Paul','age','30')
name => Paul
age => 30
####
if(!$data{$match})
{
$data{$match}++;
$count = $count + 1;
}