Schrift
[thread]88[/thread]

Variablen in Textdateien einlesen und benutzen: bessere Beschreibung viel mir nicht ein



<< >> 6 Einträge, 1 Seite
cbxk1xg
 2003-11-03 23:12
#9128 #9128
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo, Freunde der Sonne!

Ich würde gerne eine Textdatei einlesen (soweit so einfach) und die enthaltenen Variablen dann auch benutzen. Will sagen, es handelt sich um Variablen, die bereits einen Wert haben, und deren Wert auch angezeigt werden soll. Dummerweise erscheint immer nur der Klartext, also: $OptMail oder $OptInURL.

Ich habe dazu eine Textdatei angelegt und lese diese mit einem Filehandle ein. Aufgerufen wird die enstprechende Sub dann mit &OptInMailContent;

Muss ich die ganze Datei etwa erst parsen und mit Platzhaltern arbeiten, die ich dann ersetze? Ich hoffe nicht!!! Immerhin handelt es Sich um globale Variablen (ja, ich weiss, sowas macht man nicht), die definiert, also nicht leer sind.

E-Mail Templatedatei
Code: (dl )
1
2
Sie haben folgende E-Mailaddresse übermittelt: $OptMail
Bitte klicken Sie hier: $OptInURL


Filehandle
Code (perl): (dl )
1
2
3
4
5
6
sub OptInMailContent {
open (OptInMail, "<$OptInMailFile") or &error("Unable to open the OptInMailFile. $!");
@optinmail=<OptInMail>;
close(OptInMail);
print MAIL @optinmail;
}
\n\n

<!--EDIT|cbxk1xg|1067894435-->
esskar
 2003-11-04 01:06
#9129 #9129
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub OptInMailContent
{
  if(open(OptInMail, "<$OptInMailFile"))
  {
     my @optinmail = <OptInMail>;
     close(OptInMail);
     
     my $optinmailT = join("", @optinmail);
     $optinmailT =~ s!(\$\w+)!$i!ge;
     
     print MAIL $optinmailT;
}
}


die regex ist nicht optimiert bzw. komplett richtig... aber du solltest so vorgehen...

ansonsten würde ich jedoch mit HTML::Template oder äquivalentem arbeiten\n\n

<!--EDIT|esskar|1067900818-->
cbxk1xg
 2003-11-04 01:53
#9130 #9130
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Mh....
funktioniert theoretisch ganz gut, aber die ganzen Variablen sind jetzt plötzlich leer?!?
Dubu
 2003-11-04 10:33
#9131 #9131
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Es sollte in esskars Code wahrscheinlich s!(\$\w+)!$1!eeg; statt s!(\$\w+)!$i!ge; heissen. Damit laeuft's aber trotzdem nicht unter strict refs. Und ist immer noch unsicher.
cbxk1xg
 2003-11-04 10:46
#9132 #9132
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Das ist bei diesem kleinen Script echt egal. Hauptsache es funktioniert.

---

Habe es grade mal ausprobiert. Es läuft! Danke an Euch beide. Das erspart mir umständliches rumgefummel mit irgendeinem Templatemodul.\n\n

<!--EDIT|cbxk1xg|1067935841-->
Strat
 2003-11-04 11:28
#9133 #9133
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
html-template ist sehr einfach
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 6 Einträge, 1 Seite



View all threads created 2003-11-03 23:12.