Thread OOP: Instanz ja oder nein (10 answers)
Opened by rosti at 2012-12-07 10:37

rosti
 2012-12-07 11:49
#164021 #164021
User since
2011-03-19
3470 Artikel
BenutzerIn
[Homepage]
user image
hi Tobias, gerne mache ich Dir das schmackhaft ;)

eval BLOCK hat einen return-Value, das ist die letzte Zeile im BLOCK und das ist der Knackpunkt, Code mit Exceptions zu vereinfachen. Vorausgesetzt, Du freundest Dich mit der Globalen Variablen $@ an ;)

Damit kannst Du jede Methode, auch die Getter und Setter so schreiben:
Code (perl): (dl )
1
2
3
4
5
6
7
sub foo{
  my $self = shift;
  return eval{
    # wtf
    1;
  };
}


Edit: Wenn 'wtf' eine Ex wirft, gibt foo{} automatisch ein undef zurück, ansonsten wird die letzte Zeile des eval{}-Block zurückgegeben.

Dann wäre nochwas gut zu wissen: Jeder eval-call setzt $@ auf ''; d.h., bei verschachtelten 'try/catch' Konstrukten ist $@ ggf. an einen guten Platz zu sichern.

--Rosti
Last edited: 2012-12-07 12:18:41 +0100 (CET)

View full thread OOP: Instanz ja oder nein