我正在尝试使用Net::SFTP::Foreign
从远程工作目录中提取所有目录,子目录和文件的列表。
当前,我正在使用此行提取我的SFTP网站上的文件列表
my @newfilesLookedAtList = @{$sftp->ls(names_only => 1)}
它工作正常,但只显示目录。我需要目录中文件名的列表。 我在网站https://stackoverflow.com/a/32267575/5652660上找到了这个答案,该网站指出我可以使用以下内容:
$ sftp-> find(@paths,%opts)在给定目录$ path(或目录@path)上进行递归搜索,并返回找到的条目列表或标量上下文中的条目总数。 / p>
每个条目都是对具有两个键的哈希的引用:filename,条目的完整路径;还有一个Net :: SFTP :: Foreign :: Attributes对象,其中包含文件atime,mtime,权限和大小。
当我应用上面的代码时:
my @newfilesLookedAtList = @{$sftp->find('/', names_only => 1)};
我的文件@newfilesLookedAtList
返回空。
答案 0 :(得分:3)
Net::SFTP::Foreign POD指出find
返回一个列表,这意味着您不应尝试取消引用它。更改:
my @newfilesLookedAtList = @{$sftp->find('/', names_only => 1)};
收件人:
my @newfilesLookedAtList = $sftp->find('/', names_only => 1);