Perl 挑战 - 目录迭代器

2023-12-24

有时您会听到关于 Perl 的说法,可能有 6 种不同的方法来解决同一问题。优秀的 Perl 开发人员通常具有合理的见解,可以在各种可能的实现方法之间做出选择。

举一个 Perl 问题的例子:

一个简单的脚本,它递归地迭代目录结构,查找最近修改的文件(在某个日期之后,该日期是可变的)。将结果保存到文件中。

对于 Perl 开发人员来说,问题是:完成此任务的最佳方法是什么?


这听起来像是一份工作文件::查找::规则 http://search.cpan.org/perldoc?File::Find::Rule:

#!/usr/bin/perl
use strict;
use warnings;
use autodie;  # Causes built-ins like open to succeed or die.
              # You can 'use Fatal qw(open)' if autodie is not installed.

use File::Find::Rule;
use Getopt::Std;

use constant SECONDS_IN_DAY => 24 * 60 * 60;

our %option = (
    m => 1,        # -m switch: days ago modified, defaults to 1
    o => undef,    # -o switch: output file, defaults to STDOUT
);

getopts('m:o:', \%option);

# If we haven't been given directories to search, default to the
# current working directory.

if (not @ARGV) {
    @ARGV = ( '.' );
}

print STDERR "Finding files changed in the last $option{m} day(s)\n";


# Convert our time in days into a timestamp in seconds from the epoch.
my $last_modified_timestamp = time() - SECONDS_IN_DAY * $option{m};

# Now find all the regular files, which have been modified in the last
# $option{m} days, looking in all the locations specified in
# @ARGV (our remaining command line arguments).

my @files = File::Find::Rule->file()
                            ->mtime(">= $last_modified_timestamp")
                            ->in(@ARGV);

# $out_fh will store the filehandle where we send the file list.
# It defaults to STDOUT.

my $out_fh = \*STDOUT;

if ($option{o}) {
    open($out_fh, '>', $option{o});
}

# Print our results.

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

Perl 挑战 - 目录迭代器 的相关文章

  • perl:正确的“内容类型”格式以返回“图像数据 uri”

    我有一个模板angularjs期待着image data uri由通过调用的服务器调用返回src的属性img模板的元素 img width 200px height 200px src http localhost 3000 returni
  • Perl 中的“@_”有什么作用?

    我浏览了一些我在 Perl 类中编写的代码 我注意到了这一点 my string my stringarray split string 我想知道两件事 变量位于括号中的第一行 这是声明多个变量时所做的事情 如果我删除它们 它仍然可以正常工
  • Perl:Chomping字符串后,它不打印字符串的值

    所以我目前正在尝试编写一个 perl 脚本来读取一个文件并写入另一个文件 目前 我遇到的问题是从解析的行中删除换行符 我输入这样的文件 BetteDavisFilms txt 1 Wicked Stepmother 1989 as Mira
  • 从 Perl 线程生成 Expect

    我正在编写一个脚本 该脚本需要定期 每 5 分钟 生成一个 Expect 进程来完成一些工作 下面是我的代码 它生成一个 Expect 进程并执行一些工作 脚本的主要进程始终在做一些其他工作 例如它可能等待用户输入 因为我在一个线程中调用这
  • 在 Perl 中优雅地确定系统架构

    我正在寻找一种简单的方法来确定 Perl 5 中的系统是 32 位还是 64 位 我已阅读perlvar来回翻阅手册页 并没有发现包含系统 CPU 架构的变量 编译 Perl 的 CPU 架构将足够接近 这是我最接近的 chomp my a
  • Perl LWP::简单 HTTPS 错误

    我正在尝试获取网站的内容并打印 该代码按照我希望的方式在常规 HTTP 网站上运行 但它不适用于 HTTPS 我已经查找了此问题的修复程序 但它们在我的程序中不起作用 这是我目前拥有的代码 usr bin perl use strict u
  • 真实设备中的 Android strace

    我有以下情况 我想监控Android手机上的系统调用 所以 我编写了一个脚本来做到这一点 使用 Android 模拟器可以完美地工作 将应用程序的痕迹写入我的 Ubuntu 上的特定文件中 问题是当我连接一个真实的手机来分析它时 它在结果文
  • 如何检测已更改的网页?

    在我的应用程序中 我使用 LWP 定期获取网页 无论如何 是否要检查两次连续提取之间网页是否在某些方面发生了变化 除了明确进行比较之外 是否有在较低协议层生成的任何签名 例如 CRC 可以提取并与旧签名进行比较以查看可能的更改 有两种可能的
  • 如何修复 PyDev“方法应该将 self 作为第一个参数”错误

    我正在 Eclipse 中使用 PyDev 在 Python 中进行开发 我的一些代码在代码分析工具中生成错误 具体来说 class Group object def key self k class Subkey object def e
  • 如何从 R 运行带有特定模块的 perl 脚本?

    我可以从终端运行 perl 脚本 myperlscript pl 没有任何问题 但是 如果我尝试从 RStudio 中运行相同的 perl 脚本 则会出现以下错误 command lt myperlscript pl outputfile
  • 在压缩存档内的文本文件上运行“head”,而不解压存档

    问候 我接手了之前的团队并编写了处理 csv 文件的 ETL 作业 我在 ubuntu 上结合使用 shell 脚本和 perl csv 文件很大 它们以压缩档案形式到达 解压后 很多都超过 30Gb 是的 那是 G 旧进程是在 cron
  • 什么是“朴素”算法,什么是“封闭式”解决方案?

    我有一些关于描述算法时使用的术语语义的问题 首先 朴素 算法是什么意思 这与给定问题的其他解决方案有何不同 解决方案还可以采取哪些其他形式 其次 我听到很多人提到 封闭式 解决方案 我也不知道这意味着什么 但在尝试解决递归关系时经常会出现
  • unix df 上的正则表达式帮助

    我需要一些帮助来调整我的代码以查找此 UNIX 中的另一个属性df output Ex Filesystem Size Used Avail Capacity Mounted on dev ad4s1e 61G 46G 9 7G 83 ho
  • 如何使用 Perl 更改 mysql 密码

    我需要使用 Perl 脚本更改一些 mysql 密码 以下内容在更改数据库条目时有效 但是当我针对 mysql 用户更改修改它时 它将它们重置为空白密码 最后 刷新权限 也很好 但我还没有找到方法 usr bin perl use DBI
  • grep 通过彩色文本,例如海湾合作委员会 |颜色gcc | grep 正则表达式

    在 grep 管道输出时 如何使 grep 尊重 ANSI 颜色转义 我很高兴使用其他东西 perl 而不是 grep 我的用户案例 我想要 gcc foobar c colorgcc grep regexp ls color grep f
  • 如何让 mod_perl 在更改时重新加载源文件?

    我正在开发一个带有 mod 的应用程序 perl 并在每次更改代码时重新启动服务器是一个巨大的阻力 我还是想用mod perl 用于开发 因为我计划将其用于实时服务器 我在文档中没有看到有关如何执行此操作的任何内容 想法 我认为 Apach
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • HTTP POST 操作出现错误代码 302

    我有一个 perl 脚本 它将数据发送到我用 php 编写的 Web 服务 这是代码 use LWP UserAgent my ua LWP UserAgent gt new my server endpoint http example
  • 打包 Perl 应用程序,以便它可以在 Perl 的默认前缀之外工作

    我正在使用 Module Build 尽管我在构建环境上很灵活 来打包我正在编写的一些 Perl 软件 供我工作的内部使用 它包括一些脚本和一些辅助模块 我的计划是这样你就可以指定任何你想要的前缀 即perl默认值之外的东西 INC 在构建
  • Perl 三元条件运算符

    我正在尝试在脚本中编写更高效的代码 并且有时会实现三元条件运算符 我不明白为什么在循环中使用三元条件运算符时会得到额外的结果 usr bin perl use strict use warnings my array Serial 123

随机推荐

  • 使用 R 进行多线程?

    正在阅读R 项目 http www r project org 网站上 有一些 不清楚的 关于 R 多线程的参考 但尚不清楚基础产品和CRAN http cran cnr berkeley edu 库已编译 革命分析 http www re
  • Bootstrap:如何在一行上创建一系列 div 隐藏溢出的 div

    我有一个使用 bootstrap 构建的网站 我想使用 jquery dragscroll 插件创建一个带有可滑动标题的表格 但保留内置的流体网格 bootstrap 所以我想创建表的标题 并且我使用以下 HTML div class ro
  • 发送ajax请求而不等待应答

    我想发出一个ajax请求来发送一些信息 并在发送后立即 如果我收到错误 成功并不重要 进行重定向 无需等待服务器响应 我想知道我是否做类似的事情 ajax url myurl timeout 500 success function doc
  • 未找到名称为“ARTShape”的视图的组件

    只是试图生成一个在 React Native 中使用 ART 对象的 hello world 我得到了上述异常 就好像库的一部分没有链接一样 我刚刚添加了以下代码 import AppRegistry StyleSheet Text Vie
  • 为 QHeaderView 提供的类实现paintSection

    protected virtual void paintSection QPainter painter const QRect rect int logicalIndex const QHeaderView paintSection pa
  • 针对页面修改黑客的 Rails 集成测试?

    我正在使用 Capybara 1 1 2 Rails 3 1 3 rspec rails 2 9 0 和 Ruby 1 9 3p0 假设一个应用程序具有标准用户和 account admin 用户 标准用户可以创建另一个标准用户 但标准用户
  • Angular2 RC5 默认 http 标头

    在 RC4 中可以扩展 Http 或 BaseRequestOptions 并向所有 http 请求添加默认标头 像这儿如何在 Angular2 中设置默认 HTTP 标头 https stackoverflow com questions
  • Java try-catch 模式中的 try-finally

    每当我需要在 Java 中获取资源 然后保证资源被释放时 可能会抛出异常 我会使用以下模式 try Resource resource null try resource new Resource Use resource finally
  • 如何在Windows Azure云服务器上转发端口

    您好 我刚刚尝试了 Windows Azure 云服务器 下载并运行 apache 它可以在本地主机上运行 但无法从互联网访问 我应该端口转发做一些特别的事情才能使 cloudapp net 像 Web 服务器一样工作 我缺少什么 你究竟尝
  • 使用 Javascript 从 Google Analytics API 获取综合浏览量

    我在使用 JavaScript 从 Google Analytics API 获取数据时遇到问题 我似乎无法获取任何东西 但可以说它是一些基本的东西 比如页面浏览量 我在用分析 js https developers google com
  • 从轨道中的整数或小数中去除逗号

    整数或小数是否有等效的 gsub gsub 应该使用整数吗 基本上我只是想将十进制输入到 ruby 形式以及用户能够使用逗号的内容 例如 我希望用户能够输入 1 000 99 我尝试过使用 before save strip commas
  • SQL WHERE 条件不等于?

    是否可以否定 where 子句 e g DELETE FROM table WHERE id 2 你可以这样做 DELETE FROM table WHERE id NOT IN 2 OR DELETE FROM table WHERE i
  • 调整 Eigen::Ref 大小的解决方法

    我想使用 Eigen Ref 来使用 Eigen Matrix 参数来实现非模板函数 我的问题是 在这些函数中 我可能必须调整 Eigen Ref 引用的矩阵的大小 我知道 一般而言 不应调整 Eigen Ref 的大小 因为它可以映射到表
  • 如何水平对齐多个图像(连续)?

    如何水平对齐多个图像 它们不必适合宽度屏幕 相反 我想让它们超过后者的宽度 如果这有意义的话 我检查了类似问题的很多答案 但找不到任何可以解决我的问题的答案 Html div img src Content Images Personal
  • Crystal Report:“文件对于附件来说太大”错误

    我是水晶报表服务器的新手 我在这里解释错误的详细信息 我正在使用 SAP Business Objects CMC 为我的应用程序生成报告 下面是图像中的版本详细信息 当我尝试生成文件大小超过 1MB 的报告文件时 它会抛出以下错误 Err
  • 如何在 Facebook Marketing API 上检查营销活动的交付状态

    我正在用 Python 做一个关于这个的小应用程序 我使用的是 effective status 字段 但它仅显示它是否已暂停 我想检查活动是否正在运行 Thanks effective status 为您提供此活动的有效状态 对于 Cam
  • 在Python中创建一个螺旋数组?

    我和我的伙伴试图用 python 创建一个有趣的游戏 其中输入数组的元素以螺旋方式访问 我尝试了几种方法 如下所示 source https stackoverflow com a 398302 5717589 def spiral X Y
  • 通过 eclipse 插件访问项目构建路径

    我需要以编程方式检查项目的构建路径是否已包含指定的库 这是一个快速修复建议 以了解这是否已经 修复 并且不会成为问题 我可以访问当前的IInvocationContext 因此 在某些拐角处 到相应的IProject object 如何检查
  • 使用 Docker 的 artifacts-credprovider 和 VSS_NUGET_EXTERNAL_FEED_ENDPOINTS

    也许您可以帮助我使用私人 NuGet feed 进行身份验证 我已经花了一天时间研究不同的解决方案并注意到这个仓库 https github com microsoft artifacts credprovider 但我仍在努力完成它 我使
  • Perl 挑战 - 目录迭代器

    有时您会听到关于 Perl 的说法 可能有 6 种不同的方法来解决同一问题 优秀的 Perl 开发人员通常具有合理的见解 可以在各种可能的实现方法之间做出选择 举一个 Perl 问题的例子 一个简单的脚本 它递归地迭代目录结构 查找最近修改