giBBo: Nutzung von Hashes

Beitrag lesen

Hallo zusammen,

ich bin recht neu im Themengebiet Perl unterwegs und mittlerweile ziemlich verwirrt.

Ich hab folgenden Code bislang geschrieben:

  
File: test.pl  
  
use warnings;  
use strict;  
  
my %perlContext = {};  
  
use lib::perl::generateRandomNumber;  
  
$perlContext{randomNumber} = 'toFind';  
$perlContext{upperBound} = '20';  
$perlContext{lowerBound} = '10';  
  
my $retval = generateRandomNumber(\%perlContext);  
  
  
# Debugging only  
	print "perlContext:\n";  
	print "----------\n";  
	while ( my ($key, $value) = each %perlContext) {  
		print "$key => $value\n";  
	}  
	print "----------\n";  
# Debugging only  

  
File: generateRandomNumber.pm  
  
sub generateRandomNumberBasis {  
	my $bound = shift;  
	  
	my $randomNumber = rand($bound);  
	  
	return $randomNumber  
}  
  
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'};  
	  
	$higherBound = $higherBound - $lowerBound + 1;  
	  
	my $randomNumber = generateRandomNumberBasis($higherBound);  
	($randomNumber, $a) = split(/\./,$randomNumber);  
	  
	if($lowerBound != 0) {  
		$randomNumber = $randomNumber + $lowerBound  
	}  
	  
	%{$refToPerlContext}->{%{$refToPerlContext}->{'randomNumber'}} = $randomNumber;  
	  
	return "ok";  
}  
  
1;  

Funktionieren tuts, der Code macht, was er soll

-----
Hintergrund des Codes:
Aus einer Modelbasierten Entwicklungsumgebung soll Perl Code generiert werden... daher der modulare Aufbau
----

Nun das Problem:
Mein Perl (ActivePerl) meldet
Using a hash as a reference is deprecated at .../generateRandomNumber.pm line 16.
Using a hash as a reference is deprecated at .../generateRandomNumber.pm line 17.
Using a hash as a reference is deprecated at .../generateRandomNumber.pm line 28.
Using a hash as a reference is deprecated at .../generateRandomNumber.pm line 28.

Wie gesagt, ich bin neu im Thema Perl... meine Recherchen im Internet haben ergeben, dass dies eigentlich der korrkete Weg ist, Hashes an Module / Methoden weiterzugeben. Bin ich auf dem Holzweg oder ist der Interpreter meschuge?

Vielen Dank für eure Mühen
giBBo