Perl的文件名通配,您怎么了
上问题:
我想匹配当前文件夹下昨天的文件;
所以我写了如下的语句
#!/usr/bin/perl
$date =`date -d yesterday +%Y%m%d`;
$test = "log.$date";
@files =<$test*>;
foreach (@files) {
print "$_\n";
}
这样输出的 结果是整个文件夹下的文件。。。而并没有过滤出以Log开头的 日期的 文件——我的日期可能具体到当天的时间,所以我想用这个通配 匹配出当天的所有文件。不知道哪儿出错了。
但是如果改成具体的日期,如:
#!/usr/bin/perl
$date =`date -d yesterday +%Y%m%d`;
$test = "log.20120718";
@files =<$test*>;
foreach (@files) {
print "$_\n";
}
就可以匹配出当天的所有文件了,请问到底是怎么回事呢?我的通配符用的不对吗?还是说 无法匹配出昨天的文件——不用具体写死了时间。
[解决办法]
$date = `date -d yesterday +%Y%m%d`;chomp $date;$test = "log.$date";@files = <${test}*>;foreach (@files) { print "$_\n";}