You are not logged in.

  • Login
  • "ZwerG_Michi_de" started this thread

Posts: 2,655

Location: Schweinfurt

Occupation: GER

  • Send private message

1

Saturday, December 19th 2009, 12:53pm

Perl !

Sers,

ich muss eine kleine PHP Anwendung, die auf OO PHP beruht, neu in Perl umsetzen. Ich habe gute Kentnisse in OOP, Java, Php, Javascript... Perl ist mir neu und ich krieg das Kotzen, wenn cih mir die ganzen Tutorials durchlese. Ständig wird der Misst, den die da vorprogrammieren, nicht erklärt... deswegen würde ich mich sehr freuen, wenn mir jemand den Sinn von manchen Sachen erklären würde.

Quoted

sub new {
my $self = {};
$self->{NAME} = undef;
$self->{AGE} = undef;
$self->{PEERS} = [];
bless($self); # but see below
return $self;
}


Wofür ist die Zeile "my $self = {}; " denn gut? Braucht man diese ?
(wäre es sowieso nicht bei weitem geschickter hier garkein Array, sondern für jedes "Feld" (wie z. B. NAME) eine eigene Variable über my $name = undef; zu deklarieren?

Weiter:

Quoted

sub name {
my $self = shift;
if (@_) { $self->{NAME} = shift }
return $self->{NAME};
}

Wieso reicht es nicht aus, einfach nur die letzte return Zeile zu schreiben? Was wird da durch die Gegend geshiftet?

In Perl gibt es keine private/public Deklarierung?

Wenn ich eine "Controller" Klasse habe, diese noch auf eine "Modul" Klassse und deren Funktionen zurück greift, dann muss ich diese ganz oben per "use Modul" einfügen, richtig?

Perl X(

Quoted

So einmal im Monat mit den Tieren im Fluß waschen wenn es "dein Herr" befiehlt Ragna?

Icey

Posts: 2,649

Location: Berliner Rotweingürtel

Occupation: GER

  • Send private message

2

Saturday, December 19th 2009, 1:11pm

Hier wird doch alles erklärt:

http://de.selfhtml.org/perl/sprache/objekte.htm

Ansonsten: Ich finde Perl klasse :D

Posts: 3,935

Location: Berlin

Occupation: /dev/random

  • Send private message

3

Saturday, December 19th 2009, 1:19pm

$self ist ein zeiger.
mit my $xyz = {} deklarierst du eine variable als zeiger.
macht aber eigentlich auch als einziges sinn, wenn man sich den code als PHP'ler so anschaut ;).

This post has been edited 1 times, last edit by "Tsu_G_" (Dec 19th 2009, 1:21pm)


  • "ZwerG_Michi_de" started this thread

Posts: 2,655

Location: Schweinfurt

Occupation: GER

  • Send private message

4

Saturday, December 19th 2009, 2:55pm

:kotz:

Das macht echt keine Spaß, eine neue und komplett dumme ;) Sprache zu lernen.

Ich möchte z. B. folgende Klasse deklarieren:
package Test;

my $id = undef;

sub new {
my $class = shift;
$id = shift;
my $ref = {};
bless($ref,$class);
return($ref);
}

sub getId {
return $id;
}

Würde das funktionieren? (ich kann gerade leider nicht auf die VM an der Uni verbinden, deswegen kann ichs net testen)

Oder müsse ich erstmal per shift (in getId Methode) die Referenz einholen und über die Referenz nach Variablen fragen? (die ich vorher im Konstruktor z. B. eingespeichert habe)

This post has been edited 1 times, last edit by "ZwerG_Michi_de" (Dec 19th 2009, 2:55pm)