On 3/10/06, Nath, Alok (STSD) <[EMAIL PROTECTED]> wrote:
> Hi,
>         When I try to retrieve the timestamp from a ftp folder I get
>         this error message :
>            >> Can't call method "mtime" on an undefined value at func.pl
> line 69
>
>         but the same works in my local machine.
>
>         My motive is to read the timestamp for each files in the remote
> folder.
>
>         Can somebody point out what is wrong exactly or any alternative
> ??
>
>  Please help  !!
>
> ~Alok
>
> {
>     my ($host, $ftpDir) = @_;
>     my $user = "ftp";
>     my $pass = "";
>
>     my $ftp = Net::FTP->new($host) or die "Could not ftp to host: $host:
> [EMAIL PROTECTED]";
>     $ftp->login($user, $pass) or die "Could not login as $user/$pass\n";
>     $ftp->binary;
>     $ftp->hash;
>
>     # Show the ftp directory contents and the timestamp
>     foreach ($ftp->ls($ftpDir)) {
>         print "file =  $_\n"  ;
>
>         $file_date = ctime(stat($_)->mtime);

File::stat::stat() is just a wrapper for Perl's built-in stat(). If
you pass it a string, it assumes that string is a path name. if it
starts with '/', it's an absolute path, otherwise it looks for
./$pathname. Your list of files to stat is on a remote server that
must be accessed by a special protocol (in this case FTP), but you
haven't given stat() any information about how to find that file.
You've just given it a string which it assumes, rightly, should be a
file on the local file system. In order to stat the file, you would
have to get it first.

Fortunately, Net::FTP includes the mdtm() method. `perldoc Net::FTP`
for the details.

HTH,

-- jay
--------------------------------------------------
This email and attachment(s): [  ] blogable; [ x ] ask first; [  ]
private and confidential

daggerquill [at] gmail [dot] com
http://www.tuaw.com  http://www.dpguru.com  http://www.engatiki.org

values of β will give rise to dom!

Reply via email to