gpt4 book ai didi

perl - 了解 find2perl 结果

转载 作者:行者123 更新时间:2023-12-04 22:56:32 25 4
gpt4 key购买 nike

我一直在编写一个脚本,该脚本将递归搜索文件系统并删除任何超过 20 天的文件(无目录)。我用了 find2perl命令(这是 File::Find 的一部分),这就是结果。 (我注意到它不理解 -delete 选项,所以我不得不使用旧的 -exec... 选项。)

(部分脚本被截断)

sub delete_old_files {
my ($dev,$ino,$mode,$nlink,$uid,$gid);

(($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
-f _ &&
(int(-M _) > 20) &&
unlink($_);
}

我明白了 lstat部分, -f文件检查,以及 unlink ,但我不确定 (int(-M _) > 20)作品。显然它是在 20 天内检查修改日期,但我以前从未见过这种语法,并且很想知道它来自哪里以及它是如何工作的。我也很好奇它如何在不使用 $_ 的情况下将迭代器作为普通下划线引用为 -f和时间检查片。

最佳答案

lstat的结果调用被缓存。通过使用 _ ,您可以避免多次 lstat 调用。

Does the same thing as the stat function (including setting the special _ filehandle) but stats a symbolic link instead of the file the symbolic link points to ... (emphasis mine)



来自 stat :

If stat is passed the special filehandle consisting of an underline, no stat is done, but the current contents of the stat structure from the last stat, lstat, or filetest are returned.

关于perl - 了解 find2perl 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43640772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com