Your code contains syntax errors, and had you used
warnings you would have gotten some hints on what is wrong. I would do something like this:
$ perl
use strict;
use warnings;
use Data::Dumper;
my $string="1:one;2:two;3:three";
my %hash;
my @list1 = split /;/, $string;
foreach my $item(@list1) {
my ($i,$j)= split(/:/, $item);
$hash{$i} = $j;
}
print Dumper \%hash;
__END__
$VAR1 = {
'1' => 'one',
'3' => 'three',
'2' => 'two'
};
$
--
No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]