Dear monks,
Thanks for the *very* helpful suggestions. I have decided to follow RMGir and Abigail's (duplicate node) suggestion, and grep through an ls to find the file that way. Sometimes I can't see these things and need a nudge in the right direction :) See code snippet below:
if (@dirlist = ($ftp->ls))
{
foreach $_ (@dirlist)
{
if (s/(\w+shar\d\d\d\d\d\d\.\d\d\d\d)/$1/)
{
$file = $1
if ($ftp->get($file))
{
}
else
{
print "$host: Got directory listing, but couldn't get file.\n"
+;
}
}
}
}
It could probably be written a lot simpler than that, but I like to keep things in a format I can easily understand.
Thanks again. | [reply] [d/l] |
I think that there might be a problem with that. It might work, but I would suggest cleaning up one line a bit. Instead of:
if (s/(\w+shar\d\d\d\d\d\d\.\d\d\d\d)/$1/)
I would suggest:
if (m/(\w+shar\d\d\d\d\d\d\.\d\d\d\d)/)
What you are doing with s/// is substituting your regular expression for $1. The parenthesis around the expression delimit(?) $1. So it would appear that you are substituting the regular expression for itself. Then of course setting your variable $file to be equal to $1. Note the m/// in the second if statement. Also, your regular expresion could match on more than one file that fit that pattern if several files fit that scheme.
"Ex libris un peut de tout"
| [reply] [d/l] [select] |