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