Die Routine 'konvert' liegt in der Datei myperllib.pm:
.....
@EXPORT_OK = qw(..... konvert ....);
.....
sub konvert {
my ($p1, $p2) = @_;
my ($er1, $er2, $erg3, $erg4);
Achte auf deine Typos hier.
Ich hätte in dem Fall schlicht
my @results;
geschrieben
return ????;
if( 'some_error_occured' ){ return; }
return @results;
}
~~~perl
package main;
my @results = konvert( @somepars );
if( @results ){ ... }
else{ die "ein Fehler trat auf $!" }
Wenn deine Funktion mehr als drei parameter aufnimmt, solltes du dir die Übergabe eines hashes überlegen
# als Hashreferenz
my @results = some_op(
{
prop1 => $val1,
prop2 => $val2,
}
);
# als Liste (=> ist gleichbedeutend mit , )
my @results = some_op(
prop1 => $val1,
prop2 => $val2,
);
package myperllib;
some_method{
# teste ob eine Referenz oder ein Array übergeben wurde
my %pars = ( ref $_[0] eq 'HASH' ? %{$_[0]} : @_ );
# go on...
}
Deine API bleibt so unberührt von späteren Änderungen.
Willst du dir nicht den ganzen Namespace mit importierten Funktionen versauen, wäre ein Objektorientierter Ansatz sinnvoll.
my $ob = new myperllib;
my @results = $ob->method( x=>1, y=>2 );
mit dem Konstruktor
package myperllib;
new{
my $class=shift;
my $self = {};
bless $self, $class;
return $self;
}
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische