http://qs321.pair.com?node_id=612774


in reply to Re^2: connecting to ftp sites and download certain files based on file extensions
in thread connecting to ftp sites and download certain files based on file extensions

In general, when you see a message like that, Perl is telling you that you are trying to call an object method (in this case, 'cwd') on something that is not actually an object of that type. As Inigo Montoya says about Vizzini's use of the word 'inconceivable': "I do not think that word means what you think it means." Perl is saying, "I do not think that $ftp variable is really a Net::FTP class member."

The real error seems to be that your $ftp object creation didn't actually succeed -- you may want to look back at the results from the new() and login() methods to make sure that you do, in fact, have a valid, connected Net::FTP object when you call the 'cwd' method.

  • Comment on Re^3: connecting to ftp sites and download certain files based on file extensions

Replies are listed 'Best First'.
Re^4: connecting to ftp sites and download certain files based on file extensions
by Anonymous Monk on May 01, 2007 at 06:01 UTC
    thanks but I don't have any idea as to how to correct it. The website from which I have to download the data is in public domain and I don't think one needs login and password.

      OK, so, I think we're looking to see you make some kind of effort, here. What have you done so far? Where is your snippet of relevant and tested code (formatted, of course, in <code> tags)?

      If you look at Net::FTP, you'll see a Synopsis section that shows how to build an FTP connection. Notice how the return value from each operation (new, login, etc.) is tested -- and if it is false, the 'die' instruction is executed with an appropriate error message. This is what I meant by testing to ensure that your $ftp object is really what you think it is. It is pointless to execute the 'cwd' method unless you actually have a working Net::FTP object with which to work. Based on the error message you reported when trying odha57's code above, you aren't getting past the initial new() or login() steps.