用perl查找文件夹中的所有文件和目录

查找文件夹中的文件和目录是一个很常见的操作,使用perl的File::Find模块可以很方便的实现。首先使用perldoc File::Find 查看一下文档:

这个核心的就是文档中描述的回调函数。我们举一个实际的例子,一个空的git仓库为例,下面的脚本用于查找文件夹中的所有文件:

perl 复制代码
#! /usr/bin/perl
use v5.14;
use File::Find;

my @filesArry = ();
my $callback = sub {
	push @filesArry, $File::Find::name if -f;
};

find($callback, "./");

say for @filesArry;

回调函数中用 -f进行了过滤,只查找文件。

运行效果如下:

对于查找文件夹中的目录,方法是一样的,修改一下过滤条件就行。代码如下:

perl 复制代码
#! /usr/bin/perl
use v5.14;
use File::Find;

my @dirsArry = ();
my $callback = sub {
	push @dirsArry, $File::Find::name if -d;
};

find($callback, "./");

say for @dirsArry;

使用 -d进行过滤。运行效果如下:

相关推荐
SomeOtherTime20 分钟前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
wacsii23 分钟前
【Linux进程(四)】命令行参数与环境变量
linux·服务器
无奈笑天下25 分钟前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
apcipot_rain38 分钟前
C++转Java日记(10)
java·开发语言
总要学点什么1 小时前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
xiaoye-duck2 小时前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
科研邪修法2 小时前
培训PDF保护配置:把需求转换成可验收权限
linux·服务器·网络
Felven2 小时前
中科驭数100G网卡RDMA性能测试
linux·rdma·中科驭数·100g网卡
Funlang3 小时前
龙芯上的 Fun:从跑起来到机器码
开发语言·龙芯
总要学点什么3 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium