[quote=supersucker,27.April.2005, 16:26]
my$tralala = STUFF->RadToDegree($halali)
mach ich das mit dem arrow-operator krieg ich immer das gleiche ergebnis, nämlich null, ich hab von obiektorientierter programmierung unter perl keine ahnung, aber ich vermute mal dass ich mit dem arrow-operator eine objektmethode aufrufe, was natürlich nicht hinhauen kann, da ich ja auch keine klasse habe[/quote]Der Aufruf
STUFF->RadToDegree($halali) ist identisch zu
RadToDegree(STUFF, $halali), daher ist 0 in dem Fall (
$_[0] = STUFF) das korrekte Ergebnis.
Deine Klasse ist STUFF und wenn du das ganze nicht objektorientiert aufgesetzt hast, darfst du die
sub auch nicht wie eine (Klassen-)Methode aufrufen.
Quote
my$tralala = STUFF::RadToDegree($halali)
mache ich es mit "::" kriege ich die fehlermeldung das ich die methode mit zu vielen argumenten, ...
...
müsste dann die radtodegree - funktion im modul etwa so
sub RadToDegree($argument)
{
return (($argument * 180)/ Math::Trig->pi());
}
aussehen?
In dem (ursprünglichen) Fall stellt der Kompiler fest, dass du für die sub
kein Argument vorgeschrieben hast.
Das was du zuletzt vorgeschlagen hast geht nicht mal mehr als Prototype durch. Entweder läßt du ("wie normal" in perl) bei der Definition der sub die Argumentliste weg (also kein Prototype) wie in
oder dein Prototype sagt "1 Skalar als Argument" in der Form
sub RadToDegree ($) { # ja, das ist ein einzelnes Dollarzeichen
\n\n
<!--EDIT|pKai|1114625174-->
I sense a soul in search of answers.