Autor Thema: Parameter an Funktion im Modul übergeben  (Gelesen 6265 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline mt

  • Jr. Member
  • **
  • Beiträge: 57
  • Lob: 0
Parameter an Funktion im Modul übergeben
« am: April 27, 2007, 10:15:59 »
Moin Zusammen,

ich noch nicht so lange Erfahrung in Perl da ich vorher 5 Jahre ASP und PHP programmiert habe, daher habe ich vielleicht ne etwas "dümmere" Frage.

Ist es möglich Parameter an eine Funktion auszugeben?
Hier mal nen fiktives Beispiel:


Aufruf in den HTML-Vorlagen z.B.:

 __text::textauslesen(testtextdatei.txt)__

Code im Modul (nur Auszug):

<!--spmacro:module(text)
sub textauslesen {
 
  # ....
  # Verwendung der Übergebenen Variable als $text_dat
  # genauere Idee habe ich da noch nicht
  # ...

  open (TEXTDAT,"$root/$shop_verz/$ordner_sprache/$datei_verz_texte/$text_dat") or die "Fehler beim öffnen der Datei\n$!";  # Datei oeffnen.
  # Schleife zum auslesen beginnen
  while (<TEXTDAT>)  {
    my $textinhalt = $_;  # Inhalt der Datei
    # Schleife zum Filtern von Sonderzeichen im Inhalt der Datei
    while (($suchen, $ersetzen) = each(%suchen_ersetzen)){
      $textinhalt =~ s/$suchen/$ersetzen/g;
    }
    main::mprint($textinhalt);
  }
  close (TEXTDAT) or die "Fehler beim schliessen der Datei\n$!"; # Datei schliessen
  return "noinc";
}
-->

Hoffe dafür gibt es ne Lösung, da ich sonst diese Funktion X-Mal (ca. 30) schreiben muss, da ich immer eine andere Datei habe.
Danke schonmal für die Antwort.


Gruß mt



Linkback: https://www.shoppilot.net/pf/index.php?topic=834.0

Offline cru

  • Jr. Member
  • **
  • Beiträge: 69
  • Lob: 7
Re: Parameter an Funktion im Modul übergeben
« Antwort #1 am: April 27, 2007, 11:53:30 »
Hallo mt,

das ist zur Zeit leider nicht mögich...

Sie könnten es jedoch mit folgendem Ansatz probieren:

Sie legen für jede Texdatei einen Identifier an:
__text::textauslesen1__
__text::textauslesen2__
__text::textauslesen3__
__text::textauslesen4__

usw.

Innerhalb der ssp Funktion können dann Parameter übergeben werden.
Sollte dann in etwa folgendermaßen aussehen:

<!--spmacro:module(text)
sub textauslesen1 {
      my $text =  lese_text("DieDatei1.txt");
      main::mprint $text;
      return "noinc";
}
sub textauslesen2 {
      my $text =  lese_text("DieDatei2.txt");
      main::mprint $text;
       return "noinc";
}
sub textauslesen3 {
      my $text =  lese_text("DieDatei3.txt");
      main::mprint $text;
       return "noinc";
}
.
.
.

usw....

Jetzt fehlt nur noch die Funktion lese_text, welcher der Parameter übergeben wird:


.
.
.
sub lese_text {
 
 my $datei= shift;

  open (TEXTDAT,"$root/$shop_verz/$ordner_sprache/$datei_verz_texte/$datei") or die "Fehler beim öffnen der Datei\n$!";  # Datei oeffnen.
  # Schleife zum auslesen beginnen
  while (<TEXTDAT>)  {
    my $textinhalt = $_;  # Inhalt der Datei
    # Schleife zum Filtern von Sonderzeichen im Inhalt der Datei
    while (($suchen, $ersetzen) = each(%suchen_ersetzen)){
      $textinhalt =~ s/$suchen/$ersetzen/g;
    }
    return $textinhalt;
  }
  close (TEXTDAT) or die "Fehler beim schliessen der Datei\n$!"; # Datei schliessen
 
}
-->

Sie müssen also pro Textdatei und pro neuem Identifier nur einen neuen sub anlegen, welcher die Funktion lese_text mit Parameter aufruft.

Ist nicht getestet, sollte aber so funktionieren...

mfg
cru


Offline mt

  • Jr. Member
  • **
  • Beiträge: 57
  • Lob: 0
Re: Parameter an Funktion im Modul übergeben
« Antwort #2 am: April 27, 2007, 12:06:00 »
Mmh, konnte ich mir leider schon denken.
Vielleicht kann man es ja irgendwann mal realisieren (später in Version 3 oder 4 ;)).

Trotzdem vielen Danke für die schnelle Hilfe, der Lösungsansatz ist interessant und würde schon das einbinden erleichtern.
Werde ich gleich testen.

mt

Offline mt

  • Jr. Member
  • **
  • Beiträge: 57
  • Lob: 0
Re: Parameter an Funktion im Modul übergeben
« Antwort #3 am: April 27, 2007, 12:18:31 »
Hallo nochmal,

Nur mal als Feedback, habe das Script gerade eingebaut und es funzt super, ist erstmal echt eine Alternative.
Danke!

Gruß, mt


xx
Artikeldaten an Formular übergeben

Begonnen von dobra

5 Antworten
10047 Aufrufe
Letzter Beitrag Mai 30, 2007, 16:01:50
von dobra
xx
download-Funktion

Begonnen von nicky

1 Antworten
5584 Aufrufe
Letzter Beitrag Januar 28, 2003, 11:43:45
von hop
xx
Benachrichten - Funktion ?

Begonnen von dobra

2 Antworten
5337 Aufrufe
Letzter Beitrag Mai 11, 2012, 12:16:25
von dobra
xx
Zoom Funktion für Detailseiten

Begonnen von jekai

5 Antworten
8755 Aufrufe
Letzter Beitrag August 16, 2006, 07:50:57
von jekai