Perl code wiederverwenden (define), wie möglich?
Es geht sinnbildlich um diesen Code:
Man sieht, dass sich innerhalb jeder foreach-Anweisung der gleiche Code befindet. Kann man dies in Perl abkürzen, in dem man z.B. schreibt:
Gruß
if (bla bla){
foreach (bla bla){
$test = $1;
$test2 = $2;
$test3 = $3;
}
}
elsif (blu blu){
foreach (blu blu){
$test = $1;
$test2 = $2;
$test3 = $3;
}
}
else {
foreach (bli bli){
$test = $1;
$test2 = $2;
$test3 = $3;
}
}
Man sieht, dass sich innerhalb jeder foreach-Anweisung der gleiche Code befindet. Kann man dies in Perl abkürzen, in dem man z.B. schreibt:
#define CODE = $test = $1;$test2 = $2;$test3 = $3;
if (bla bla){
foreach (bla bla){
CODE
}
}
elsif (blu blu){
foreach (blu blu){
CODE
}
}
else {
foreach (bli bli){
CODE
}
}
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 179821
Url: https://administrator.de/contentid/179821
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
das geht mit Perl. Wie sehen denn die Abfragen aus? also was ist "bla bla" und was "blu blu" usw.?
Am einfachsten (aber nicht viel kürzer) wäre eine Funktion:
Nun ist das sehr theoretisch, beschreib mal bitte genauer was Du machen möchtest.
Eigentlich sieht Dein "Beispiel" aber mehr nach Funktionaler Programmierung als nach OO (Wiederverwendbarkeit) aus.
Markus
das geht mit Perl. Wie sehen denn die Abfragen aus? also was ist "bla bla" und was "blu blu" usw.?
Am einfachsten (aber nicht viel kürzer) wäre eine Funktion:
sub funktion {
foreach ( ....) { # die Parameter sind also bla bla, bli bli usw.
CODE # das ist das Gleiche, was Du auch in Deine Foreach-Schleifen schreibst
}
}
# wenn die bla bla usw in ein Array passen, dann
my @abfragen = ( "bla bla", "blu blu.....usw ;
foreach ( @abfragen ) {
funktion ( $_ ) ;
}
Nun ist das sehr theoretisch, beschreib mal bitte genauer was Du machen möchtest.
Eigentlich sieht Dein "Beispiel" aber mehr nach Funktionaler Programmierung als nach OO (Wiederverwendbarkeit) aus.
Markus
Ja, Perl kann damit umgehen. Schau Dir mal unter diesem Link http://www.perl.com/pub/2002/05/29/closure.html das Beispiel zu Closures an. Wichtige Lektüre zu Perl und Funktionaler Programmierung: http://hop.perl.plover.com/
Wie ich schon geschrieben habe, wenn wir nicht wissen, was Du tatsächlich machen möchtest, dann ist es schwierig zu raten, was hier wirklich hilfreich ist.
Übrigens musst Du mit Perl schon einige Erfahrung haben, um solche Dinge vernünftig umsetzen zu können. Perl kann zwar alles, der Code ist meist sehr kurz und effizient, aber Perl ist nicht einfach, verglichen z.B. mit Ruby oder Python.
Außerdem solltest Du Dich hüten, C-Code mit Perl zu schreiben, das passiert schnell. Perl ist ja als Werkzeug für die Unix-Systemadministration entstanden und die Leute die es (früher) benutzt haben konnten eben C und die Shell. Aber Perl bietet weit mehr als C und man sollte daher (heutzutage) mit Perl auch richtigen Perlcode schreiben.
Gruß
Markus
Wie ich schon geschrieben habe, wenn wir nicht wissen, was Du tatsächlich machen möchtest, dann ist es schwierig zu raten, was hier wirklich hilfreich ist.
Übrigens musst Du mit Perl schon einige Erfahrung haben, um solche Dinge vernünftig umsetzen zu können. Perl kann zwar alles, der Code ist meist sehr kurz und effizient, aber Perl ist nicht einfach, verglichen z.B. mit Ruby oder Python.
Außerdem solltest Du Dich hüten, C-Code mit Perl zu schreiben, das passiert schnell. Perl ist ja als Werkzeug für die Unix-Systemadministration entstanden und die Leute die es (früher) benutzt haben konnten eben C und die Shell. Aber Perl bietet weit mehr als C und man sollte daher (heutzutage) mit Perl auch richtigen Perlcode schreiben.
Gruß
Markus