If you're looking for why rget isn't working, check to see if your FTP site isn't using DOS style listings. If it is, feel free to use this:
$ftp->rget(ParseSub => &somesub);
sub somesub {
my @returnedobjs = ();
foreach my $line (@_) {
#print "file: $line";
my (@fields, $file);
$line =~ /^
d{1,2}-d{1,2}-d{1,2}s+ #date
d{1,2}:d{1,2}wws+ #time of day nn:nn{AM|PM}
(|d*)s+ #either DIR or filesize
(S*) #name of entry
$
/x;
$fields[6] = $2;
if (isDat($fields[6])) { $datfile = $fields[6]; }
next if $fields[6] =~ /^.{1,2}$/;
if ($1 eq '') {
$file = Net::FTP::Recursive::File->new(IsDirectory=>
1,
IsPlainFile => 0,
IsSymlink => 0,
OriginalLine => $line,
Fields => [@fields]);
}
else {
$file = Net::FTP::Recursive::File->new(IsDirectory => 0,
IsPlainFile => 1,
IsSymlink => 0,
OriginalLine => $line,
Fields => [@fields]);
}
push(@returnedobjs, $file);
}
return(@returnedobjs);
}
No comments:
Post a Comment