Struppi: zeile aus textfile entfernen oder ausschneiden

Beitrag lesen

naja...kenn ich hab ich auch schon zu tun gehabt.

open (REFFILE,"$reffile")||error('cannot open cart ');

Ich weißß nicht ob dir das schon erzählt wurde. In $! steht warum das öffent scheitert, das kann u.U. nützlich sein.

ja es öffnet 100%

100% gibt es nicht, und schon gar nicht bei einer CGI Anwendung.

my $items = $FORM{'Video(s)'};#wird vom formular geschickt

Du arbeitest immer noch nicht mit CGI.pm?
Du bist sicher das in dem Eintrag ein Wert steht?

ja!auch schon probiert mit print "$items...

Ich meine - immer?
Du prüfst in einem CGI Programm nicht einen Wert der eingeben werden kann, das kann zu einem Fehlerhaften verhalten führen.

my($itemname, $itemprice, $itemquant) = split(/|/,$_);

Was ist den $_ hier an dieser stelle?

sollten die daten sein die in der textfile stehen.

ist es aber nicht.

foreach (@lines)

Weiter oben bist du bereits alle Einträge durch gegangen (while <REFILE>) und jetzt nochmal?

while seh ich nicht :)

Mein fehler.

{
push (@newlines,$_) if ($_ !~ /^$items|/i);
my $newfile = join("|",@newlines);

Was hier passiert ist völlig wirr.

eben wirrt mich auch etwas...
ich möchte nach einer zeile suchen und löschen wenn sie existiert,
fertig mehr nicht.

Wenn in der aktuellen Zeile $items vorkommt, dann push es auf das array. Dann wird das Array mit den Zeichen '|' zusammengefügt und einer lokal gültigen Variabel zugewiesen.

}

und daraus läßt sich vermuten, dass du auch nicht mit use strict arbeitest, dann wäre das gar nicht möglich, denn $newline ist undefiniert.

doch    my $newfile = join("|",@newlines);

Aber nur inerhalb von { ... } my deklariert eine Variabel innerhalb eines Blocks, danach existiert sie nicht mehr.

Insofern glaub ich auch nicht das das Beispiel strict war:

Probier das mal aus:
use strict;
{
my $test = '';
}
print $text;

Es läuft nicht.

Struppi.