Perl做一件事不止一种方法
发布时间:2020-12-16 00:17:17 所属栏目:大数据 来源:网络整理
导读:今天需要用Perl遍历目录下的所有的文件。一个很自然的想法是用Perl提供的文件/文件夹操作,写了十多行代码后,觉得这好像跟Java一样了。有没有别的办法呢?有人提到用glob,这是个不错的办法。稍微列举一下Perl下可以实现相同功能的办法,现在就有5种了,面
今天需要用Perl遍历目录下的所有的文件。一个很自然的想法是用Perl提供的文件/文件夹操作,写了十多行代码后,觉得这好像跟Java一样了。有没有别的办法呢?有人提到用glob,这是个不错的办法。稍微列举一下Perl下可以实现相同功能的办法,现在就有5种了,面对这样多的选择,如果事前并不清楚,码农肯定也纠结了。Perl倡导的“There's More Than One Way To Do It”还是过于自由了。往往在Coding的过程中会发现代码越写越短,突然士气高涨,突然士气低落,不利于保持情绪稳定。长远来看,Python可能继续得势了。
1. opendir/closedir
opendir (DIR,$folder)|| die"can't open DIR: $!" ; @files=readdir DIR; closedir(DIR) ; for($index=0; $index < @files; $index++){ print "@files[$index]n" ; }
?
2. File::Find
use strict; use File::Find; sub wanted { if ( -f $File::Find::name ) { # if ( $File::Find::name =~ /.pl$/ ) { print "$File::Find::namen"; #} } } find( &;wanted,$folder);
3. system shell
system('dir $folder'); system('ls $folder');
4. glob
my @temp = glob "$folder*"; foreach my $file (@temp) { }
5. <>
foreach (<$folder*>) { #<$folder**> foreach (<*/*/*>) { if (-e $_) {print "$_n"}; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |