Thread Text in Datei schreiben (8 answers)
Opened by Zele at 2012-05-24 15:05

Linuxer
 2012-05-24 15:47
#158567 #158567
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Wie Muffi schon drauf hinwies, steckt der Fehler wohl in Zeile 5.
Die Fehlermeldung teilt Dir das übrigens auch mit: syntax error at ./ftp.pl line 5, near ""open xxxx.dyndns.org"\"

Zeile 5:
Code: (dl )
print file "open xxxx.dyndns.org"\n";


Andere Punkte (pauschal ;-) ):
+ Du verwendest Perl ;-)
- Ein open() kann fehlschlagen; daher sollte man den Erfolg überprüfen.
- Anstatt "Barewords" sollte man heutzutage eher lexikalische Filehandles verwenden.
- Die 3-Argument-Form des open() schützt vor Fehlern und Sicherheitsproblem beim Öffnen von Dateien und sollte daher bevorzugt verwendet werden.
- Mit einem HERE-Dokument kann man die Ausgabe vereinfachen.

Überarbeitet und ungetestet:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl
use strict;
use warnings;

my $output_file = 'upload.txt';

my $filename = 'irgendwas';


#create ftp info file

open( my $outfh, '>', $output_file ) or die "open($output_file,w) failed: $!\n";

print $outfh <<"OUTPUT";
open xxxx.dyndns.org
benutzername
passwort
binary
prompt
cd /pfad/
mget $filename.tar.gz
quit
OUTPUT

close( $outfh) or die "close($outfh) failed: $!\n";;


edit:
"Andere Punkte" sanfter umformuliert.
Last edited: 2012-05-24 16:17:49 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Text in Datei schreiben