On Friday 24 August 2007 21:00:37 John W. Krahn wrote:
> Stephen Kratzer wrote:
> > On Friday 24 August 2007 08:57:26 Marian Bednar wrote:
> >> I am a newbie in this forum and Perl too ;-)
> >>
> >> I am trying writing script transfering files using module
> >> Net::SFTP::Foreign.
> >>
> >> I need to retrieve from remote directory only names of files (not
> >> directories, links,etc.).
> >>
> >> Something like this doesn't work:
> >>
> >> --------------
> >> use strict;
> >> use warnings;
> >> use Net::SFTP::Foreign;
> >>
> >> my $remote_dir = "/tmp";
> >> my $sftp = Net::SFTP::Foreign->new("host");
> >> $sftp->error and print "SSH connection failed: " . $sftp->error . "\n";
> >>
> >> $sftp->setcwd($remote_dir);
> >> my $DH = $sftp->opendir($remote_dir);
> >> while ($_ = $sftp->readdir($DH)) {
> >> print "$_->{filename} \n" if -f $_->{filename};
> >> }
> >> ---------------
> >>
> >> Script above write out nothing, but if last line is this
> >>
> >> print "$_->{filename} \n";
> >>
> >> It writes out names of files, directories, but I need only names of
> >> files. How can I get it easy?
> >
> > You cannot use -f. You'll need to stat the file and check the mode.
>
> -f *does* stat the file.  The reason that you can't use -f (or stat) is
> because $_->{filename} is not on a locally mounted file system.
>
>
>
> John
> --
> Perl isn't a toolbox, but a small machine shop where you
> can special-order certain sorts of tools at low cost and
> in short order.                            -- Larry Wall

I meant using Net::SFTP's stat method, of course.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to