Perl语言基础总结---强大的文件目录及文件操作
来源:互联网 发布:mysql数据库下载 编辑:程序博客网 时间:2024/06/06 04:03
1987年,Larry Wall发明perl语言以来,perl语言逐渐发展强大,并且应用非产广泛,在读《Perl语言入门(第五版)》教程的时候不得不感慨,perl竟然把文件操作作为核心操作,并用了两大章的篇幅来阐诉文件目录及文件的操作的灵活,受益匪浅呀!按耐不住激动地心情,把这份快乐迫不及待的分享给大家,并且写了一个短小的例子,来拓展一下。好吧,闲话少叙,进入正题吧!
实例目的:在当前目录下,寻找满足自己需要的文件
实例思路:通过递归遍历当前目录及其目录下的文件,并将文件属性与所需文件属性比较,返回所需文件目录,并写入一个txt文档中。
递归遍历的步骤:
1 将当前目录列表送入栈,然后第一个元素出栈;
2 判断第一个元素是否是目录,如果是目录则重复步骤1;
3 否则判断第一个元素是否是文件,如果是文件则与所需文件属性比较,如果比较成功,则将文件目录写入test.txt文件中;
4 如果无法判断当前文件目录,输出错误。
值得指出的是
1、当把当前目录列表送入栈时,其中包括了.(当前目录)..(上一目录),我们必须把这两个元素排除在外。
2、在windows系统下处理文件路径是要用到File::Spec模块,少去了路径处理所带来的麻烦
3、我们可以使用 5.010模块,里面有很多简单有趣的特性,比如say 输出换行。
下面一个例子用来演示递归当前目录,将目录及文件路径写入”目录.txt”,若要进一步扩展,可以在判断是文件后添加if语句。
程序源码:
use 5.010;use File::Spec;sub readfile{ my $count=0;#用来记录栈中元素 my $mydir=shift @_;#子例程读取参数,必须用shift,否则返回参数个数! opendir DH,$mydir or die "cannot open$mydir:$!";#目录操作,获得句柄DH foreach $file(readdir DH){ $file=File::Spec->catfile($mydir,$file);#将目录与文件名连接起来 $count++; if ($count!=1 and $count!=2){#只要不是.(当前目录)..(上一目录) if (-d $file ){#-d如果当前是目录 say FILE "\t\t——————当前目录是 ",$file; $file="\.\\$file"; &readfile($file);#递归目录 }elsif( -f $file){-f如果当前是文件 say FILE "当前文件是 ",$file; }else{ say FILE "other",$file; } } } closedir DH;}if(!openFILE,">>目录.txt"){ die "cannot create file:$!"; }&readfile(".");closeFILE;say"已经完成,请打开当前目录下的'目录.txt',按任意键继续………";<STDIN>;
- Perl语言基础总结---强大的文件目录及文件操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- Perl文件及目录操作
- perl 文件,目录操作
- perl 文件目录操作
- perl文件操作总结(全面讲解perl的文件操作)
- perl 文件操作总结
- perl文件和目录操作
- perl文件和目录操作
- 文件及目录的操作
- 什么是句柄
- AIX下awk语言的输出函数printf
- 创建窗口--java---frame
- 函数调用----二进制
- WPF模拟Windows7的Aero透明窗体效果
- Perl语言基础总结---强大的文件目录及文件操作
- 一个ant生成工具的配置文件模板
- Hibernate三种状态的转换
- WinCE5.0开发环境的建立
- POJ 3628 Bookshelf 2
- CEGUI 中文按钮
- sqlite3在ARM上的移植
- OpenGL织梦之旅【第二章】第2节.实现动画
- WDK介绍与安装