使用Perl删除目录和子目录中具有给定扩展名的文件

mar*_*lue 3 perl

我是一个Perl新手.我试图删除目录(A)及其所有子目录(B,C)中具有特定扩展名的所有文件.我已经学会了如何为给定的目录执行此操作,但不是递归的.以下是A目录中的作业,但不是B,C子目录中的作业.

use strict;    
use warnings;    
my $dir = "~/A/";    
unlink glob "$dir/*.log";
Run Code Online (Sandbox Code Playgroud)

我试过了

use strict;
use warnings;
use File::Find;
my $dir = "~/A";
find(\&wanted, $dir);
sub wanted { 
unlink glob "*.log";
}
Run Code Online (Sandbox Code Playgroud)

但后来我收到一条消息:Can't stat ~/A: No such file or directory.虽然目录在那里.任何提示?马里奥

Сух*_*й27 5

尝试使用$ENV{"HOME"}而不是~特定于shell的,

use strict;    
use warnings;    
my $dir = "$ENV{HOME}/A";
unlink glob "$dir/*.log";
Run Code Online (Sandbox Code Playgroud)