Hallo alle!
Zwei Fragen, ein Thread!
1. Net::Ftp::File
Ziel ist, eine Datei auf dem Webserver hochzuladen und anschließend
deren Rechte zu ändern. Datei bekommt nach dem Hochladen ja automatisch
644, ich möchte aber beispielsweise 600 haben, halte mich an die Modul-Beschreibung (#$ftp->chmod):
C:\>perl -w
use strict;
use Net::FTP::File;
my $ftp = Net::FTP->new("ftp.atomic-eggs.com", Debug => 0)
or die "Cannot connect to some.host.name: $@";
$ftp->login("myusername",'myPaSSwoRd')
or die "Cannot login ", $ftp->message;
$ftp->cwd("justanotherdir") or die "Cannot change working directory ", $ftp->message;
$ftp->put("localfile.txt", "TESTNETFTP.txt") or die $!; # Datei bekommt automatisch 644
$ftp->chmod(600,"TESTNETFTP.txt") or die $ftp->message;
Ich erhalte die Meldung:
Unknown command 'SITE SITE CHMOD'
Kann das jemand bestätigen? Ist es ein Fehler in meiner Handhabung des Moduls oder im Modul selbst?
Gelöst habe ich es wie weiter unten, nachdem ich mir die entsprechenden Funktionen
in Net::Ftp::File _und_ im »Muttermodul« Net::FTP angeschaut habe. In Net::FTP::File
steht:
sub Net::FTP::chmod {
my $ftp = shift;
if($ftp->supported('SITE CHMOD')) {
my $chmod = $ftp->site('CHMOD',@_);
return 1 if $chmod == 2;
return 0 if $chmod == 5;
return -1;
}
return undef;
}
Und die sub site in Net::FTP sieht so aus:
sub site {
my $ftp = shift;
$ftp->command("SITE", @_);
$ftp->response();
}
Irgendwie wundert mich nicht, dass da zweimal SITE kommt, oder? - auch wenn ich nicht
ganz durchblicke ;).... so habe ich mir aber geholfen:
C:\>perl -w
use strict;
use Net::FTP;
my $ftp = Net::FTP->new("ftp.atomic-eggs.com", Debug => 0)
or die "Cannot connect to some.host.name: $@";
$ftp->login("myusername",'myPaSSwoRd')
or die "Cannot login ", $ftp->message;
$ftp->cwd("justanotherdir") or die "Cannot change working directory ", $ftp->message;
$ftp->put("localfile.txt", "TESTNETFTP.txt") or die $!; # Datei bekommt automatisch 644
my $dateiname = "TESTNETFTP.txt";
$ftp->command("SITE CHMOD", 600,$dateiname) or die $ftp->message;
Übrigens gibt es sowohl in /perl/lib ($VERSION = "2.75";) als auch in /perl/site/lib
($VERSION = '2.77';) ein Modul FTP.pm. Bei use Net::FTP; wird 2.75 geladen (geprüft mit
der Ausgabe von print $Net::FTP::VERSION;). Warum gibt es die Module oft zwei Mal, und
warum wird nicht immer die neueste Version geladen?
2. PPM
Wurde der Perl Package Manager erneuert? Ich bat gerade jemand, Image::Size zu installieren,
sagte, er soll in der Konsole »ppm« eintippen und dann, wenn der ppm-Prompt kommt »install
Image-Size«, doch poppt bei dem gleich nach der ppm-Eingabe ein Windows-Fenster auf? Was hat
es in sich?
Viele Grüße aus Frankfurt/Main,
Patrick
![](http://www.atomic-eggs.com/fuernA.jpg)
_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?