Thread Allgemeine Fragen zum "richtigen Script" (4 answers)
Opened by renee at 2005-03-01 10:38

renee
 2005-03-01 10:38
#52213 #52213
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Von mir bekommst Du auf die meisten Fragen ein klares "kommt darauf an"!

Die meisten Punkte, die Du angesprochen hast, sind von Vorteil - nicht wegen der CPU-Last - sondern weil es Dein Skript leichter wartbar macht. Wenn irgendwoch doch ein Fehler auftaucht, kannst Du bei Einrückungen schneller Deinen Code durchsuchen!

Auch die Einteilung in Subroutinen macht Sinn. Zum einen macht es Deinen Code wieder leichter wartbar, weil man schneller die Subroutine eingrenzen kann, in der ein Fehler auftritt. Und wenn Du einen Designtechnischen Fehler hast, brauchst Du - wenn Du die Funktionalität mehrmals im Skript verwendest - nur eine Sub zu ändern und nicht an 20 Stellen im Code. Außerdem wird so weniger Speicher benötigt, weil Du die gleiche Funktionalität, die Du vorher 20 mal im Code hast, nur noch einmal schreiben musst.

Eine recht elegante Lösung, um die benötigte Sub direkt anzusprechen ist, vorher einen Hash zu machen, in dem Du die Funktionalitäten festlegst. Beispiel:
Code: (dl )
1
2
3
4
5
6
7
 my %hash = (edit => \&edit_file,
save => \&save_file,
#...
);

my $action = 'edit';
$hash{$action}->(); # jetzt wird die Subroutine aufgerufen


So sparst Du Dir etliche if-Abfragen. Man sollte aber darauf achten, dass man Abfragt, ob eine Hasheintrag existiert, wenn nein, dann eine default-Funktion aufrufen.

Ob man die Funktionalitäten in eigene Skripte auslagert, hängt auch davon ab, wie groß die sind und wie unabhängig. Solltest Du diese Funktionalität in mehreren Deiner Skripte gebrauchen, so ist das Schreiben eines eigenen Moduls für diese Funktionalität sehr sinnvoll!

Wenn Du aber nur zehn Subs in dem Stil von
Code: (dl )
sub eins{ print "Hallo\n";}
hast (ist jetzt etwas übertrieben), dann ist ein Auslagern in ein Modul oder Skript sinnlos!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Allgemeine Fragen zum "richtigen Script"