User since
2005-05-11
9
Artikel
BenutzerIn
Hey Leute,
Problem: modifiziere eine Datei und speichere diese Änderungen auch.
Ich habe ein Dateihandle geöffnet( zum lesen ) , die Datei komplett ausgelesen , die/den String editiert , den Dateihandler wieder geschlossen. Danach dann einen neuen Handler mit gleichen Namen geöffnet und diesmal zum schreiben geöffnet. Habe den/die Strings versucht zu schreiben und dann wieder close und dann war das Script fertig.
Nur das ganze hat nicht geklappt, er hat zB. obwohl er die ganze Datei auslesen sollte nur die erste Zeile ausgelesen, oder auch bei Ausgabe des Dateiinhalts in der Konsole hat er eigentlich hätte die ganze Datei anzeigen müssen:
Code:
undef $/ und dann $str = <INF>
oder ich habe mit einer while <inf> die Zeile immer an einen anderen String rangehängt $str="$str$_" etc.
Kurz gesagt es ging nicht obwohl es hätte funktionieren MÜSSEN!!!
Dann habe ich es so gemacht und den zweiten Handler gleichzeitig geöffnet natürlich mit anderen Namen und auch anderem Dateinamen und siehe da, jetzt geht alles!!!
Wisst ihr woran das liegen könnte, ich mach noch nicht lange Perl aber was ich sagen muss, es verhält sich selten so wie man es erwartet!!!!
User since
2003-08-11
457
Artikel
BenutzerIn
Kannst du mal das Problem in einen kurzen Script rekonstruieren und hier posten, ohne Code wird es schwierig zu sagen, was du falsch gemacht haben koenntest.
,,Das perlt aber heute wieder...'' -- Dittsche
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Hast du Perl mit "use strict" und "use warnings" erlaubt, dir zu helfen?
User since
2003-08-04
12208
Artikel
Admin1
der fehler liegt vermutlich in zeile 42
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=J-jayz-Z,30.05.2005, 14:21]so funktioniert?[/quote]
das geht schon!
User since
2003-08-04
14371
Artikel
ModeratorIn
Ja, das funktioniert im Prinzip schon...
Man sieht es häufig, dass die " benutzt werden, obwohl es unnötig ist!
Also besser:
User since
2005-04-13
625
Artikel
BenutzerIn
Jo, das sind die kleinen Feinheiten, die ich aus "formalität" immer dazumach.
Auch bei Zahlen. Schlechte Angewohnheit...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de
User since
2005-04-13
625
Artikel
BenutzerIn
Ich lerns auch noch irgendwann :p
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de