in reply to Trying to get sum of elements in array

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";