File::Find 是否有更干净的方法来返回所需文件的列表?

2024-06-25

我找到了背后的设计选择File::Find::find https://metacpan.org/module/File%3a%3aFind有点令人惊讶。我遇到过的例子都表明find用在 void 上下文中。

The 文档 https://metacpan.org/module/File%3a%3aFind#The-wanted-function还澄清\&wanted代码参考find( \&wanted, @dirs )并不意味着是一个过滤器(强调我自己的):

The wanted()函数执行您想要的任何验证each文件和目录。请注意,尽管有其名称,wanted()function 是一个通用的回调函数,并且not tell File::Find是否“需要”某个文件。其实它的返回值 被忽略。


但是如果我确实想以类似于以下的方式将它用作过滤器怎么办grep http://perldoc.perl.org/functions/grep.html?我很想知道是否有另一种方法可以编写以下内容:

use strict;
use warnings;
use feature 'say';

use File::Find;

my $wanted = qr/^\d{2}_/;  # e.g.

my @wanted;
find( sub { -f && /$wanted/ && push @wanted, $_ }, '.' );

# I wish my @wanted = find( ... ); worked

say for @wanted;

在 CPAN 上,我发现了几个 File::Find 的替代接口,旨在简化接口。

我会尝试File::Finder http://search.cpan.org/~merlyn/File-Finder-0.53/lib/File/Finder.pm,由著名 Perl 专家 Randal Schwartz 撰写,第一。

File::Find::Rule http://search.cpan.org/~rclamp/File-Find-Rule-0.33/lib/File/Find/Rule.pm是另一个。

(可以肯定地说,如果人们编写模块来执行此操作,则没有简单的内置方法可以执行此操作。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

File::Find 是否有更干净的方法来返回所需文件的列表? 的相关文章

  • Perl:LWP::UserAgent 对于重定向 URL 始终返回代码 200

    我有一个简单的 url 它执行 302 临时错误 移至另一页 我尝试在 URL 返回代码 200 表示 OK 时检索它 并在返回 200 以外的其他内容时停止 My code my ua LWP UserAgent gt new env p
  • 使用perl,在每行都有相同单词的情况下如何选择最后两行?

    Bini 21 89753 20 47853 20 27835 18 34952 16 23454 Bini 16 89753 14 47853 13 27835 12 34952 11 23454 Bini 10 09014 我的文件有一
  • Perl YAML 模块无法识别标量类型

    我加载以下 yaml 文件 foo bar s 1 hx 0x34 用这段代码 use YAML qw LoadFile Dump use Data Dumper my d LoadFile test yaml print Dumper d
  • 使用 LWP::Agent 的 Perl JSON::RPC::Client

    我被要求不使用 JSON RPC Client 而是使用 LWP 进行调用 这是我的代码 Server usr bin perl use strict use lib use ServerLib use JSON RPC Server Da
  • 是否有理由在 Perl 中使用 open(...) 的双参数形式?

    是否有任何理由使用双参数形式open 在 Perl 中而不是三个或更多参数的版本 我能想到的唯一原因是明显的观察结果 即两个参数的形式更短 但是假设冗长不是问题 是否有任何其他原因会让您选择双参数形式open 一参数和二参数 open 应用
  • 在perl中更改多维哈希的第一个键

    我在 perl 中有一个多维哈希 我想更改所选值的第一个键 例如 我有哈希 my Hash1 Hash1 1 12 1 Hash1 1 10 1 Hash1 2 31 1 Hash1 3 52 1 Hash1 3 58 1 Hash1 4
  • 检查 Perl 函数参数值得吗?

    有很多关于MooseX 方法 签名 http search cpan org perldoc MooseX Method Signatures甚至在此之前 诸如参数 验证 http search cpan org perldoc Param
  • 难道真的没有比 POD 更好的记录 Perl 代码的方法了吗?

    我已经是一名 Perl 程序员很长时间了 但我总是对 POD 中的文档有疑问 当我在代码中使用POD注释时 代码很难阅读 当我在文件末尾使用 POD 注释时 存在文档与代码不同步的危险 我怀念类似于 Java 的文档风格 descripti
  • 在 Perl 中用条件停止进程

    我在下面问了以下问题 我找到了一个非常接近的答案 但后来意识到它不起作用 我在 perl 中使用管道 但在我通过管道达到我的条件之前 该函数就完成了运行 有没有办法在运行时精确地检查 10 个香蕉通过后停止该过程 解析输出并计算字符串出现的
  • Perl 守护进程不与 Sleep() 一起工作

    我使用编写了一个简单的测试守护进程过程 守护进程 http search cpan org deti Proc Daemon 0 14 lib Proc Daemon pod 这是守护进程 usr bin perl use Proc Dae
  • 在 Perl 中 JSON 编码/解码 utf8 字符串

    我通过一个utf8 http perldoc perl org utf8 html从我的命令行将字符串编码到 Perl 程序中 gt test pl string et s try hi gs 这似乎正确识别了字符串 use utf8 Ge
  • 在 ActivePerl 上安装 Padre (IDE)?

    当我访问 Padre 的官方下载网站时 http padre perlide org download html http padre perlide org download html 我看到 Windows 中唯一的选项是下载 DWIM
  • 如何编写正则表达式来匹配 Verilog 文件中的模块实例化?

    我正在开发一个项目 通过使用 perl 脚本语言来促进 verilog 编程 现在我想编写一个脚本来扫描顶级verilog文件 然后生成模块的层次结构列表 这表明我需要提取模块实例化 从verilog文件中的语句来看 问题是这样的 如何编写
  • 如何使用 Perl 将连接数据线转换为方案块?

    我正在寻找一种将信号连接转换为简单方案或图表的方法 假设我有 2 个组件 周围有 2 条线路 信号 component A input S1 output S2 component B input S2 output S1 这将是输入数据文
  • perl 中的大写重音字符

    有没有办法在perl中大写重音字符 my string l phant print uc string 这样它实际上会打印 L PHANT 我的 perl 脚本以 ISO 8859 1 编码 string 以相同编码打印在 xml 文件中
  • 如何在 Perl 中生成数组的所有排列?

    生成所有内容的最佳 优雅 简单 高效 方式是什么 n perl 中数组的排列 例如 如果我有一个数组 arr 0 1 2 我想输出所有排列 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 它可能应该是一个返回迭代器的
  • sed:用匹配的模式替换第 n 个单词?

    我有一个具有以下特征的文本文件 每行至少有三个由空格分隔的 单词 单词 可以是任何字符或字符串 我在一些行中附加了一些注释 并提出了对原始单词进行更改的初步建议 现在想使用 sed 为我进行这些更改 因此 为了提供更清晰的图片 我的文件如下
  • Perl:导出器出现问题

    Module FOO BAR Foobar pm use strict use warnings package Foobar our VERSION ISA EXPORT EXPORT OK EXPORT TAGS FOO BEGIN r
  • 检测Perl字符串是否可打印

    我正在尝试在 Perl 中打印递归数据结构以进行调试 哈希数组的哈希的哈希 诸如此类的东西 它的一些基本数据元素是可打印的字符串 所以我正在打印它们 不幸的是 一些基本数据元素是二进制的 想想图像文件中的内容 他们用乱码搞砸了我的调试输出
  • 如何覆盖 Template Toolkit 模板文件中的 WRAPPER?

    有没有办法禁用WRAPPER那是设置在新的 配置 http search cpan org dist Template Toolkit lib Template pm 通过模板或临时覆盖parse 我想要一个默认值WRAPPER 我将用于

随机推荐

  • 如何计算iOS 11不同方向的尺寸?

    我根据具有水平滚动和自定义布局的 UICollectionView 的安全区域来计算 itemSize 但对于 iPhone X 来说 安全区域对于不同的方向有不同的大小 我的问题是如何计算 viewWillTransition 函数中横向
  • COM 错误?打开工作簿两次会导致引用损坏

    归功于fuglede https stackoverflow com users 5085211 fuglede为了引起我的注意 这是 COM 错误吗 我打开 Excel 工作簿 A 然后打开工作簿 B 这两个工作簿在单元格 A1 中都有一
  • Bootstrap 列中的文本未居中

    我在 Bootstrap 中构建了 1 10 1 列标题结构 现在我想将其居中 在 10 列中 但正如您通过页面中间的虚线看到的 不集中在正中间 为什么不 我怎样才能把它拿到那里 标题的高度取决于font size其中的文字 如何通过命令手
  • 将对象作为构造函数的参数传递并保存上下文

    TL DR 我想在创建类的新实例时将对象作为参数传递 ChildClass 当我传递参数时 我想保存上下文 以便 this应该引用创建此实例的对象 而不是引用的上下文 父类 js class ParentClass constructor
  • 将曲线图案与图像边缘匹配

    我有一个要搜索沿其边缘的曲线的目标图像和一个包含该曲线的模板图像 我需要实现的是在目标图像中找到模板图像中的曲线的最佳匹配 并根据分数来判断是否匹配 这还包括曲线的旋转和大小调整 目标图像可以是 Canny Edge 检测器的输出 如果这能
  • 我如何知道提供了什么 -j 选项

    In Racket http racket lang org在构建系统中 我们有一个构建步骤 它调用一个可以同时运行多个并行任务的程序 由于这是从调用的make 尊重 j选项make最初是用 然而 据我所知 没有办法获得的价值 j从里面的选
  • 实体框架:为什么实体类的集合类型需要在默认构造函数中实例化?

    我正在使用 Visual Studio 构建代码优先模型北风自动数据库 我有一些疑问 我发现如果实体类有一个集合 那么该集合总是在默认构造函数中实例化 为什么我们需要这样做 The ICollection
  • Android VideoView setVideoURI 阻塞 UI 线程

    Android中VideoView的setVideoURI方法似乎阻塞了UI线程 一旦我调用此方法 即使在快速设备上 UI 也会变得滞后 有没有办法提高这里的性能 我可以在这里找到与该主题相关的唯一其他线程 https groups goo
  • 小部件中的 SurfaceView

    我正在为电视应用程序实现一个小部件 我想在其中显示流媒体 所以我必须放置表面视图在里面 由于小部件具有 RemoteViews 我如何使用 SurfaceView 来设置值表面支架 我已经在xml中定义了SurfaceView 我在互联网上
  • 如何自动调整下拉内容的宽度以匹配

    元素的宽度?

    基本上我有两个 p 元素 当您将鼠标悬停在其中一个上时 p p 元素 出现下拉内容 问题是 我想要下拉菜单content 下拉菜单本身 的宽度match的宽度 p p 元素 这些图片可能应该描述我在说什么 https i stack img
  • 如何创建一个没有清单文件和主类的jar?

    我有大约 40 到 50 个类文件 但没有一个有 main 方法或清单文件 现在我必须创建一个JAR从这些文件中提取文件 我该怎么做呢 jar cf myjarfile jar class 将创建一个 jar 文件 其清单包含有关 jar
  • Python 中的列表是否有等效的 str.split ?

    如果我有一个字符串 我可以用空格将其分割str split method hello world split returns hello world 如果我有一个像这样的列表 hey 1 None 2 0 string another st
  • ASP.net Identity 2.1 获取所有具有角色的用户

    如何获取用户列表 包括每个用户的角色名称 我的应用程序具有 MVC 项目的默认表 我可以使用 Identity 2 1 检索所有用户 如下所示 Model public class GetVendorViewModel public ILi
  • 例如,为什么有人应该在 C/C++ 中使用三重指针?

    我正在寻找示例或解释为什么有人应该 或不应该 在 C C 中使用三重指针 有没有出现三重指针的例子 我特别寻找使用三重指针的源代码 我想到的最好的例子是稀疏的多层表 例如 实现 Unicode 字符属性的一种方法可能是 prop type
  • 从终端以调试模式运行 jar

    我正在使用 intellij idea IDE 并且尝试在调试模式下从终端运行我的 jar 文件 并在代码中的几个位置设置断点 我正在使用的命令是 java jar myTestApp jar file myfile txt users m
  • 如何检测我的应用程序是否在虚拟机中运行?

    如何检测 NET 或 Win32 我的应用程序是否在虚拟机中运行 这就是我使用的 using var searcher new System Management ManagementObjectSearcher Select from W
  • 在 React 应用程序中导入 CSS

    In the 创建反应应用程序 https github com facebook create react app文档显示 App css 已导入到 App js 中 还有一种方法可以从组件加载编译后的 css 文件吗 我的视图组件 im
  • Zend Framework 2:Composer\Autoload\includeFile 很慢

    根据 New Relic 交易追踪器 有时Composer Autoload includeFile加载我的项目大约需要 318 毫秒 我已经从作曲家那里转储了一个类映射 但仍然没有什么区别 composer json需要满足以下条件 re
  • 找不到 PySide SVG 图像格式?

    我正在使用 Eclipse 的 PyDev 插件与 Qt 集成 我安装了 PySide 但在使用 SVG 图像格式时遇到问题 我知道当我运行我的应用程序时 格式位于C Python27 Lib site packages PySide pl
  • File::Find 是否有更干净的方法来返回所需文件的列表?

    我找到了背后的设计选择File Find find https metacpan org module File 3a 3aFind有点令人惊讶 我遇到过的例子都表明find用在 void 上下文中 The 文档 https metacpa