my %perlContext = {};
Das ist falsch. Du weist hier einem Hash eine Hashreferenz zu und du bekommst die folgende Warnung:
Reference found where even-sized list expected at ..
$perlContext{upperBound} = '20';
$perlContext{lowerBound} = '10';
Sollen das Zahlen oder Zeichenketten sein? Du musst aufpassen, auch wenn Perl das nicht so eng sieht, es ist immer eine schlechte Idee keine Zahlen zu benutzen wenn man Zahlen meint.
sub generateRandomNumber {
my $refToPerlContext = shift;print %$refToPerlContext . "\n";
print "upperBound" . $refToPerlContext->{'upperBound'} . "\n";
print "lowerBound" . $refToPerlContext->{'lowerBound'} . "\n";
my $higherBound = %{$refToPerlContext}->{'upperBound'};
my $lowerBound = %{$refToPerlContext}->{'lowerBound'};
Die erste (auskommentierte) Schreibweise wäre richtig gewesen.
Struppi.