加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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"};
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读