Not really a bug, but since $sftp->ls returns a single scalar, i.e. an array reference, the outer loop seems to be superfluous. If you print out @files and you see only something like "ARRAY(0x734657)", you can change this part of the script to
my $f = $sftp->ls('/xxxx/xxxxx/outbound'); # $f instead of @files
#removed a loop here
foreach my $file_ref ( @{$files} )
{
To remove the dirs you might take a look at grep, which works similar to the command line grep:
my @files= grep (!/^\.\.?$/, @files); #or without regex
my @files= grep ($_ ne "." and $_ ne "..", @files);
The rest looks good. Without knowing what problem you have with it I can't help you. What error message do you get?
|