【发布时间】:2012-11-25 20:44:06
【问题描述】:
远程目录mydir的内容:
blah.myname.1.txt
blah.myname.somethingelse.txt
blah.myname.randomcharacters.txt
blah.notmyname.1.txt
blah.notmyname.2.txt
...
在 perl 中,我想用 myname 下载所有这些东西
真的在适当的引用中失败了。请帮忙。
失败的代码
my @files;
@files = $ftp->ls( '*.myname.*.txt' ); # finds nothing
@files = $ftp->ls( '.*.myname.*.txt' ); # finds nothing
等等。
如何放置通配符以便它们被ls 解释,而不是被perl 解释?这里出了什么问题?
【问题讨论】:
-
你确定 perl 的 ls 函数接受通配符吗? ftp 客户端自己进行文件过滤,而不是远程系统,因此通配符可能永远不会出现。您可能必须自己检索完整的目录列表并进行自己的匹配。
-
@MarcB 你是什么意思-“ftp 客户端自己进行文件过滤”?他们不处理通配符吗??
-
确实有,但是你检查过 perl 的 ftp 库有没有?例如
$ftp->ls('*')?如果它使用通配符,那只会返回所有内容。
标签: perl ftp wildcard quotes ls