Perl实现遍历目录例子

所属分类: 脚本专栏 / perl 阅读数: 469
收藏 0 赞 0 分享

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

1、默认activePerl下的采用的编码是gbk,所以需要将字符串转为gbk才不会显示乱码
2、遍历文件目录时,需要排除特殊的目录.和..

完整的代码:

复制代码 代码如下:

#!/usr/bin/perl
 use strict;
 use warnings;
 use Encode qw/from_to/;
 
 my $path = "e:/CSS Design";
 my $filecount = 0;
 
 sub parse_env {   
     my $path = $_[0]; #或者使用 my($path) = @_; @_类似javascript中的arguments
     my $subpath;
     my $handle;
 
     if (-d $path) {#当前路径是否为一个目录
         if (opendir($handle, $path)) {
             while ($subpath = readdir($handle)) {
                 if (!($subpath =~ m/^\.$/) and !($subpath =~ m/^(\.\.)$/)) {
                     my $p = $path."/$subpath";
 
                     if (-d $p) {
                         parse_env($p);
                     } else {
                         ++$filecount;
                         print $p."\n";
                     }
                 }               
             }
             closedir($handle);           
         }
     }
 
     return $filecount;
 }
 
 my $count = parse_env $path;
 my $str = "文件总数:".$count;
 from_to($str, "utf8", "gbk");
 
 print $str;

运行效果图:

更多精彩内容其他人还在看

perl中子程序中参数的两种引用(传递)方式介绍

这里主要讨论的是当你要传递的参数不是仅仅一个的时候,也就是两个以上,并且他们数据的类型还不一致的时候,我们要遇到的问题
收藏 0 赞 0 分享

perl 指定长度并生成一个随机的DNA序列的脚本代码

perl 指定长度并生成一个随机的DNA序列的代码,有需要的朋友可以参考下
收藏 0 赞 0 分享

perl生成特定碱基比例的随机序列的代码

怎么用perl程序,随机生成一条序列,使ACGT四种碱基的含量分别为0.3,0.3,0.2,0.2!
收藏 0 赞 0 分享

学习perl的unless控制结构

在perl的if控制结构中,只有当条件表达式为真时才执行某块代码。如果想让程序块在条件为假时才执行,此时可以把if改成unless
收藏 0 赞 0 分享

有关perl正则表达式的一些杂项

有关perl正则表达式的一些杂项,有需要的朋友可以参考下
收藏 0 赞 0 分享

perl中heredoc使用说明

在成块打印文本的时候特别有用,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl使用chdir的实例代码

Perl使用chdir的例子,供朋友们参考学习
收藏 0 赞 0 分享

perl特殊符号及默认的内部变量

perl特殊符号及默认的内部变量,有需要的朋友不妨参考下
收藏 0 赞 0 分享

perl中my与our的区别介绍

our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量
收藏 0 赞 0 分享

在vim中添加perl注释时无法对齐问题的解决方法

在使用vim编辑perl脚本时,每当输入#号时,#号都会跑到行首问题,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多