Thread funktionen aus eigenem Modul einbinden (16 answers)
Opened by supersucker at 2005-04-26 18:43

pKai
 2005-04-27 22:03
#54240 #54240
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
[quote=supersucker,27.April.2005, 16:26]
Code: (dl )
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
Code: (dl )
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
Code: (dl )
1
2
3
4
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
Code: (dl )
sub RadToDegree { ...
oder dein Prototype sagt "1 Skalar als Argument" in der Form
Code: (dl )
sub RadToDegree ($) { # ja, das ist ein einzelnes Dollarzeichen
\n\n

<!--EDIT|pKai|1114625174-->
I sense a soul in search of answers.

View full thread funktionen aus eigenem Modul einbinden