Perl获取父文件夹名称

使用File :: Find获取父目录的名称解决方案.我知道如何只获取文件名或只有目录路径,但是我不知道如何为最后一个包含目录执行此操作.

例如,如果目录是/dir_1/dir_2/dir_3/…/dir_n/*.txt,我需要获取’dir_n’名称.

use strict;
use warnings;
use File::Find;

my $dir = "some_path";

find(\&file_handle,$dir); 
sub file_handle {
    /\.txt$/ or return;
    my $fd = $File::Find::dir;
    my $fn = $File::Find::name;
    # ...
}

解决方法

给定目录路径,然后将 File::Basename(另一个核心模块)应用于路径以获取目录的最后一部分.
use strict;
use warnings;
use File::Find;
use File::Basename;

my $dir = "some_path";

find(\&file_handle,$dir); 
sub file_handle {
    /\.txt$/ or return;
    my $fd = $File::Find::dir;
    my $fn = $File::Find::name;
    my $dir = basename($fd);
    # ....
}

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...