Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Perl ! Zeichen innerhalb eines Scripts ersetzen

Ullzn / 6 Antworten / Baumansicht Nickles

Hi Leuts,

brauch Eure Hilfe: In einem Perlscript muss ich verschiedene Zeichen innerhalb von URLs (?, &, ~) durch einen Bindestrich ersetzen bevor diese an URLs ausgegeben werden. Ansosnten funzt der Skript 1A. Hat wer nen Tipp...?

Vielen Dank

Ullzn

bei Antwort benachrichtigen
(Anonym) Ullzn „Perl ! Zeichen innerhalb eines Scripts ersetzen“
Optionen

meinst du die übergabe per post oder get methode?

bei Antwort benachrichtigen
Ullzn (Anonym) „meinst du die übergabe per post oder get methode?“
Optionen

Hi,

ist ein ganz normales script, das auf unix-ebene (i.d.r. über cornjob) gestartet wird.

Ullzn

bei Antwort benachrichtigen
xafford Ullzn „Perl ! Zeichen innerhalb eines Scripts ersetzen“
Optionen

was spricht gegen preg_replace?

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Ullzn xafford „was spricht gegen preg_replace?“
Optionen

sorry, die Funktion kenn ich nicht

bei Antwort benachrichtigen
Ullzn xafford „was spricht gegen preg_replace?“
Optionen

Sorry, ich glaub ich sollte das problem detaillierter darstellen:
Also... ich muss Datenbankeinträge u.a. unter Zuhilfenahme von Perl in HTML-Dateien ausgeben. Das Problem ist: Aus diesen HTML-Dateien sollen (via cgi) Zusatzinformationen zu den Einträgen - wiederum in HTML - aufrufbar sein. Das Aufrufen dieser Zusatzinformationen erfolgt wiederum durch eine cgi-Übergabe der URL. Problematisch wirds, wenn die URL eines der Zeichen "&, ?, ~" enthält. Diese Zeichen muss ich durch "-" esetzen.
Das funktioniert normaerweise in Perl durch:

$a = "http://members.tripod.com/~dazc?-&/&?~biblio.htm";
print "$a\n";

$a =~ tr/&?~/---/;
print "$a\n";

Innerhalb der Scripts, das die erste HTML-Seite erzeugt funzt das aber nun nicht so recht: der entsprechende Ausschnitt des Script sieht so aus:

elsif ($stuck =~ m/#FIURVT/)
{
$stuck =~ s/#FIURVT/$felderhash{"..FIUR"}/;
if ($felderhash{"..FIUR"} =~ m/.+/){print HTML $stuck;}
}

mein Problem: Wie und wo (vermutlich vor "Print") ersetzte ich die Zeichen?

Danke für eure Hilfe

Ullzn

bei Antwort benachrichtigen
xafford Ullzn „Sorry, ich glaub ich sollte das problem detaillierter darstellen: Also... ich...“
Optionen

leider kenne ich die perlbefehle nicht genau, nur in php, aber preg_replace gibt es so oder ähnlich meines wissens auch in perl.
du mußt zwei arrays konfigurieren, eins mit den ausgrücken, die ersetzt werden sollen $such und eins mit den ausdrücken, durch die sie ersetzt werden $ersatz (ich beziehe mich auf php, sollte aber in perl ähnlich funktionieren).
dann definierst du dein
$a=preg_replace($such, $ersatz, $a);

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen