BAKKA: Datei lesen per Browsa

Hallo ...
Vorweg ein paar Infos ueber meine Arbeitsumgebung:
SUN Solaris
UNIX
Netscape 4.61
Perl 5.00502
So.. Es geht darum mit einem Perl-Programm in einer Datei nach einer Markierung zu suchen, dann den Teil bis zur markierung zu ersetzen....
Die Parameter fuer die Suche werden in einem, mit Perl generiertem ,HTML Dokument abgefragt, und dann ungefaehr so uebergeben:
$tag = param('$Tag');
Doch das spannende passiert bei dem Vergleich, der den tag mit der jeweiligen Zeile vergleicht....
while (<OLDHTML>)
{    
push(@temp,$_);
$s=$_;
$s=~ s/ //g;
$tag=~ s/ //g;                                    
if (($tag eq $s)

so.. und nun sollte das if irgendwann greifen... tut es aba nich

Weiss irgendjemand wieso nicht?
(denn in einer Terminal-Version laeuft es..)

Falls Ja, dann bittebittebitte antworten  
:)

BAKKA

P.S. verzeiht bitte die laenge dieser Frage, aba ich hab es schwer mich kurz zu fassen  :)

  1. Hi,

    ich bin zwar nicht ganz sicher, Dich vollständig verstanden zu haben (was hat das ganze denn bitte mit dem Browser zu tun?), aber auf folgendes gibt es eine einfache Lösung:

    So.. Es geht darum mit einem Perl-Programm in einer Datei nach einer Markierung zu suchen, dann den Teil bis zur markierung zu ersetzen....

    Du willst also eine Datei lesen und alles bis zur Markierung, nennen wir sie $mark, ignorieren?

    open(READ,$datei) or die "Kann $datei nicht oeffnen: $!";
    my $temp = $/; # für später speichern :-)
    $/ = $mark;
    my $ignore_this = <READ>;
    $/ = $temp;
    my @rest_der_datei = <READ>;
    close(READ) or die "Kann $datei nicht schliessen: $!";

    while (<OLDHTML>)
    {    
    push(@temp,$_);
    $s=$_;
    $s=~ s/ //g;
    $tag=~ s/ //g;

    »»  if (($tag eq $s)

    so.. und nun sollte das if irgendwann greifen... tut es aba nich

    Vermutlich hast Du nicht bedacht, daß an $s=$_ immer noch die Zeilenendemarkierung (i.d.R. \n) hängt. Bearbeite es also z.B. vor dem push-Befehl einfach mit
    chomp;

    HTH

    Cheatah

    1. Hallo ..

      Danke ersteinmal fuer Deine Loesung...
      meine Idee war es die Datei Zeilenweise auszulesen, die Zeilen dann mit dem Tag zu vergleichen, dann ein positionsmarker mit $. zu setzten, und dann eine Datei zu oeffnen , den neuen Kopfteil zeilenweise einsetzen, und  die alte Datei(mittlerweilen in einem Array abgespeichert) ab dem Positionsmarker in Die neue datei zu schreiben...
      Deins war viel kuerzer, jedoch bricht er ab sobald er an eine Datei kommt, die nicht den Tag enthaelt..

      Haetest Du vielleicht noch eine Loesung , wie ich ich vorher noch ueberpruefen kann , ob der Tag in der Datei vorkommt?

      Danke

      BAKKA

      1. So .. hat sich jetzt alles erledigt..

        hab dem tag noch ein \n angehaengt, denn chomp hats irgendwie nicht gebracht; effekt ist trotyzdem der selbe .. GLEICHHEIT  :)

        Bin jetzt wieder Gluecklich

        Danke

        BAKKA