sanket vaidya wrote:
From: scooter [mailto:[EMAIL PROTECTED]
I want to load the value from scalar variable to a hash
Example:
my $a = "a, 1, b, 2, c, 3";
Now, I need to create a hash %b, which holds values like
%b = { a => 1, b => 2, c => 3 };
Here is the code to accomplish your task.
use warnings;
use strict;
my $a = "a, 1, b, 2, c, 3";
$a =~ s/ //g; #delete spaces from $a
You can do that more efficiently with tr///:
$a =~ tr/ //d; #delete spaces from $a
my @array = split(",",$a);
Or you can delete the spaces when you split the string:
my @array = split / *, */, $a;
my %b = (
$array[0] => $array[1],
$array[2] => $array[3],
$array[4] => $array[5]
);
You can just assign a list directly to a hash:
my %b = @array;
Or just assign the list returned from split:
my %b = split / *, */, $a;
for (keys%b)
{
print "$_ => $b{$_}\n";
}
The output is:
c => 3
a => 1
b => 2
John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/