Perl遍历目录

环境为windos,需要注意的两点:

1、默认activePerl下的采用的编码是gbk,所以需要将字符串转为gbk才不会显示乱码

2、遍历文件目录时,需要排除特殊的目录.和..

完整的代码:

1: #!/usr/bin/perl

       2: use strict;

       3: use warnings;

       4: use Encode qw/from_to/; 

       5:  

       6: my $path = "e:/CSS Design";

       7: my $filecount = 0; 

       8:  

       9: sub parse_env {    

      10:     my $path = $_[0]; #或者使用 my($path) = @_; @_类似javascript中的arguments

      11:     my $subpath;

      12:     my $handle; 

      13:  

      14:     if (-d $path) {#当前路径是否为一个目录

      15:         if (opendir($handle, $path)) {

      16:             while ($subpath = readdir($handle)) {

      17:                 if (!($subpath =~ m/^\.$/) and !($subpath =~ m/^(\.\.)$/)) {

      18:                     my $p = $path."/$subpath"; 

      19:  

      20:                     if (-d $p) {

      21:                         parse_env($p);

      22:                     } else {

      23:                         ++$filecount;

      24:                         print $p."\n";

      25:                     }

      26:                 }                

      27:             }

      28:             closedir($handle);            

      29:         }

      30:     } 

      31:  

      32:     return $filecount;

      33: } 

      34:  

      35: my $count = parse_env $path;

      36: my $str = "文件总数:".$count;

      37: from_to($str, "utf8", "gbk"); 

      38:  

      39: print $str;

运行效果图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

写给新入职的毕业生们

5710
来自专栏黑泽君的专栏

输入输出流体系图

8210
来自专栏Modeng的专栏

思考:如何高效的说服别人

国庆期间去一个同学那里去玩耍,因为他是做服务行业的所以国庆没有放假,所以我就只能一边看他做生意,一边等他清闲了聊上两句。

9710
来自专栏轮子工厂

简历修改了100遍,却仍然没有找到满意的工作,你可能需要看一下这篇文章

最近恰逢秋招,身边很多朋友都跟我抱怨说,简历投出去了不少,可是很多都是石沉大海,没有了回音。于是就急的不行,纷纷跑过来请教简历制作大法。

12820
来自专栏本立2道生

电脑护眼设置:蓝色光波过滤

本人高度近视,因此平时使用电脑时总会关注如何护眼,安卓手机上使用了app “蓝色光波过滤”,感觉不错,就想看看PC上有没有相应的软件,找倒是找到了,不过需要先安...

13110
来自专栏web前端

Button按钮--inject与provide

inject 和 provider 是vue中的组合选项,需要一起使用。目的是允许一个祖先组件向其所有子孙后代注入依赖(简单地说就是祖先组件向子孙后代传值的一种...

28610
来自专栏黑泽君的专栏

程序员眼中的英语单词

10710
来自专栏凌帅的阅读思考与实践

加密货币必将成为世界货币称霸全球(二)

[第一篇文章](https://mp.weixin.qq.com/s/8-FskjZJFRJPd4oFl4BAww)中,凌帅分析了加密货币本身的先进性及作为全球...

17120
来自专栏日知录

跃迁:成为高手的技术

14520
来自专栏一直在跳坑然后爬坑

行观点与列观点

8410

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励