perl源码:find_file.pl

2016-11-25 19:55:18来源:CSDN作者:skylerpaper人点击

# file: find_file.pl# author: zby# descript: with module File::Find to get the files your wanted# date: 2016-11-16#!/usr/bin/perluse strict;use utf8;use File::Find (); # 调用File::Find模块,注意这里后面的()表示不导入名称空间,即不能使用find简写来调用File::Find::find()no warnings 'File::Find'; # 使用File::Find模块时不报错our @dirs = @ARGV; # 取外部参数作为目录列表our $pat = '/.tar$|/.txt$|/.pl$'; # 匹配模式open FH,'>','1.txt' or die "1.txt can not open :$!/n"; # 打开文件句柄sub wanted {    if ($_ =~ /$pat/) { # 匹配模式绑定$_        print FH "$File::Find::name logged!/n"; # 打印匹配文件名到文件句柄        }    }File::Find::find({wanted=>/&wanted,no_chdir=>1},@dirs); # 注意这里wanted是个回调函数,相当于把find的结果作为wanted的输入,                                                        # 即$_,$File::Find::name,$File::Find::dir动态发给了wanted                                                         # no_chdir 使$_=$File::Find::nameclose FH; # 关闭文件句柄exit; # 退出程序

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台