Vonbo Skrevet 16. november 2004 Skrevet 16. november 2004 Jeg lurer på hvordan jeg skal lagre en fil jeg mottar i client. Filen kommer slik: $socket->recv($innhold,$BUFFSIZE); og $innhold inneholder filen jeg vil lagre lokalt. $file inneholder navnet på fila. Så skal jeg lagre denne fila lokalt, og må vel da opprette en tom fil med samme navn som $file, og deretter åpne den og legge inn? Tror jeg har dette riktig, men fikk det ikke til å virke. Prøvde med print "touch $file"; for å opprette fil, men med dårlig resultat. Noen som har gjort det samme?
Xizor Skrevet 16. november 2004 Skrevet 16. november 2004 Prøv dette. open(FILE,>/path/$file) or die "Can`t open file $file for writing!"; print FILE "$innhold"; close(FILE); For å lage en fil i perl can du bruke system() system(touch /path/$file); - Xizor
Vonbo Skrevet 17. november 2004 Forfatter Skrevet 17. november 2004 (endret) Skal se på det i morgen. Takk for svar. Endret 17. november 2004 av Vonbo
Torbjørn Skrevet 17. november 2004 Skrevet 17. november 2004 obs-obs. andre argument til open skal være en streng, dvs med string quotes (lurt å legge på or die og): open FILE, ">/path/$file" or die "something went wrong: $!"; print FILE $innhold; # trenger ingen string quotes her. close FILE; Videre, unngå å bruke systemkall hvis mulig. for å skrive til en fil, trenger du ikke "touche" den. open FILE,">filnavn"; # vil lage "filnavn". hvis du likevel vil touch'e, se på modulen File::Touch http://search.cpan.org/~nwetters/File-Touch-0.01/Touch.pm
Vonbo Skrevet 17. november 2004 Forfatter Skrevet 17. november 2004 Noe gjør jeg feil, men ser ikke hva.. så jeg poster koden i håp om hjelp: elsif($answer =~ /get/) { @kom = split(" ", $answer); $file = $kom[1]; $socket->recv($innhold,$BUFFSIZE); open(FILE,">$file") or die "Can`t open file $file for writing!"; print FILE $innhold; close(FILE); } $innhold inneholder filen som ble spurt etter. Og $file inneholder filnavnet. Split'en er for å fjerne get foran filnavnet. Hvorfor lager ikke dette en ny fil? Alt den gjør er å skrive ut filen til skjerm. Det viser at jeg mottar filen, men jeg ber den alikevel ikke om å skrive ut filen slik jeg ser det. Noen forklaring på dette?
Torbjørn Skrevet 17. november 2004 Skrevet 17. november 2004 legg inn print "Attempting to store contents in file...<br/>\n"; inni den elsif setninga.
Vonbo Skrevet 17. november 2004 Forfatter Skrevet 17. november 2004 hmm.. riktig.. den skriver ut print-setninga, men kommer tydeligvis ikke lenger... Hva kan det skyldes?
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå