There are several problems in your code:
my @array = join(' ' , keys %num) . "\n";
You apply a string value (scalar) to an array. It looks like you are trying to print it. You probably want to do this:
my @array = keys %num;
There is a simpler way to do realize your program:
my @num = ();
It's easier to use an array, instead of hash for your program.
while(scalar @num < 5){
push @num, int(rand(50) + 1);
}
or, even easier:
push(@num, int(rand(50) + 1)) for(1..5);
print join(' ' , @num), "\n";
my $sum = 0;
for(@num){
$sum += $_;
}
print "The sum is: $sum\n";
Or, the final code:
my @num = ();
push(@num, int(rand(50) + 1)) for(1..5);
my $sum = 0;
for(@num){
$sum += $_;
}
print join(' ' , @num), "\n";
print "The sum is: $sum\n";
Or, group the loops:
my @num = ();
my $sum = 0;
for(1..5){
my $num = int(rand(50) + 1);
push(@num, $num);
$sum += $num;
}
print join(' ' , @num), "\nThe sum is: $sum\n";
|