Almost there! There are a few things you should clean up in addition to figuring out how get() works.
use strict;
Lexically scope all of those variables with "my" to make strict happy.
"Hardcode" your desired local directory, and tell get() about it.
You don't need to add a newline to the cwd().
Your syntax for printing the filelist with newlines won't work. Use map instead.
Add some error checking and feedback.
#!/usr/local/bin/perl -w
use strict;
use Net::FTP;
my $hostname = 'mirror.anl.gov';
my $username = 'anonymous';
my $password = 'username@domain.com';
# Hardcode the directory and filename to get
my $home = '/pub';
my $filename = 'motd';
# Hardcode the local directory
my $localdir = '/home/boy/';
# Open the connection to the host
my $ftp = Net::FTP->new($hostname)
or die "Cannot connect to $hostname: $@"; # Construct object
$ftp->login($username, $password)
or die "Cannot login ", $ftp->message;; # Log in
$ftp->cwd($home)
or die "Cannot change working directory ", $ftp->message;# Change
+directory
my @filelist=$ftp->ls($home);
print map { "$_\n"} @filelist;
# Now get the file and leave
$ftp->get($filename,$localdir.$filename)
or die "Cannot get $filename: $@";
$ftp->quit;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|