perlquestion
rahulruns
<p>
I am trying to assign the mutiple values of a key in a hash to multiple variables but getting "Use of uninitialized value $value2 in concatenation (.) or string at checking.pl line 39." error though the values of the keys are assigned to the variables. How do I eliminate these error messages?
</p>
<code>
#!/usr/bin/perl
use strict;
use Term::ANSIColor;
use warnings;
use Crypt::Random qw( makerandom );
#-----------------------------------------------------------------------------
#RANDOM NUMBER GENERATION FOR NNBENCH
#-----------------------------------------------------------------------------
#print color 'bold blue';
print "NNBENCH TEST TO START\n\n";
my $nn_map = makerandom ( Size => 5, Strength => 1 );
my $nn_reduce = makerandom ( Size => 4, Strength => 1 );
my $nnblock_size_low = makerandom ( Size => 7, Strength => 1 );
my $nnblock_size_medium = makerandom ( Size => 10, Strength => 1 );
my $nnblock_size_huge = makerandom ( Size => 11, Strength => 1 );
my $nnbyte_size_low = makerandom ( Size => 7, Strength => 1 );
my $nnbyte_size_medium = makerandom ( Size => 9, Strength => 1 );
my $nnbyte_size_huge = makerandom ( Size => 14, Strength => 1 );
my $nnfile_number_low = makerandom ( Size => 7, Strength => 1 );
my $nnfile_number_medium = makerandom ( Size => 9, Strength => 1 );
my $nnfile_number_huge = makerandom ( Size => 14, Strength => 1 );
my @nnnumber_of_file_low = ("$nnblock_size_low", "$nnbyte_size_low");
my @nnnumber_of_file_medium = ("$nnblock_size_medium", "$nnbyte_size_medium");
my @nnnumber_of_file_huge = ("$nnblock_size_huge", "$nnbyte_size_huge");
my %nn_file = ($nnfile_number_low => "@nnnumber_of_file_low" , $nnfile_number_medium => "@nnnumber_of_file_medium", $nnfile_number_huge => "@nnnumber_of_file_huge");;
foreach my $key ( keys %nn_file )
{
my ($value1,$value2) = $nn_file{$key};
print "key is $key value is $value1 $value2";
ERROR
#perl checking.pl
NNBENCH TEST TO START
Use of uninitialized value $value2 in concatenation (.) or string at checking.pl line 39.
Use of uninitialized value $value2 in concatenation (.) or string at checking.pl line 39.
Use of uninitialized value $value2 in concatenation (.) or string at checking.pl line 39.
key is 120 value is 93 84 key is 8364 value is 1435 8883 key is 405 value is 647 313
</code>