作者zard1989 (St. Kevin)
看板Perl
标题Re: [问题] 让命令引数支援 -R 和 *
时间Sat Aug 21 22:59:23 2010
※ 引述《a3181388 (Mr.3181388)》之铭言:
: 大家好 弱者小弟我想请教一下
: 要怎麽让命令引数支援 -R 和 *
: 目前已经可以让许多档案当作引数
: 如 try.pl 1.txt 2.txt
: 想让程式支援资料夹下所有子资料下递回的所有档案
: 不知该怎麽做 谢谢
可以使用File::Find模组(
http://perldoc.perl.org/File/Find.html)。
至於 * 的部份,你的shell(e.g. bash)会帮你展开成该目录底下的所有档案名称。
Example:
#!/usr/bin/env perl
use 5.010;
use strict;
use File::Find;
my @files;
sub wanted {
# 在这个function过滤和处理你要的档案
# -f 等同於 -f $_ ,测试该档名是否为一个档案,而非目录或其他东西
-f && push @files, $_;
}
# find预设会递回搜寻资料夹下的档案 (preorder traversal)
find(\&wanted, @ARGV);
# 印出@ARGV中所有档案、目录底下的档案的档名
say join " ", @files;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.214.6
※ 编辑: zard1989 来自: 140.112.214.6 (08/21 23:44)