Perl 教程
1. Perl 教程 2. Perl 简介 3. Perl 环境安装 4. Perl 基础语法 5. Perl 数据类型 6. Perl 变量 7. Perl 标量 8. Perl 数组 9. Perl 哈希 10. Perl 条件语句 11. Perl 循环 12. Perl 运算符 13. Perl 时间日期 14. Perl 子程序(函数) 15. Perl 引用 16. Perl 格式化输出 17. Perl 文件操作 18. Perl 目录操作 19. Perl 错误处理 20. Perl 特殊变量 21. Perl 正则表达式 22. Perl 发送邮件 23. Perl Socket 编程 24. Perl 面向对象 25. Perl 数据库连接 26. Perl 包和模块 27. Perl 进程管理 28. Perl POD 文档

Perl 目录操作

Perl 目录操作

以下列出了一些操作目录的标准函数:


opendir DIRHANDLE, EXPR  # 打开目录

readdir DIRHANDLE        # 读取目录

rewinddir DIRHANDLE      # 定位指针到开头

telldir DIRHANDLE        # 返回目录的当前位置

seekdir DIRHANDLE, POS   # 定位指定到目录的 POS 位置

closedir DIRHANDLE       # 关闭目录


显示所有的文件

显示目录下的所有文件,以下实例使用了 glob 操作符,演示如下:

实例

#!/usr/bin/perl # 显示 /tmp 目录下的所有文件 $dir = "/tmp/*"; my @files = glob( $dir ); foreach (@files ){ print $_ . "\n"; } # 显示 /tmp 目录下所有以 .c 结尾的文件 $dir = "/tmp/*.c"; @files = glob( $dir ); foreach (@files ){ print $_ . "\n"; } # 显示所有隐藏文件 $dir = "/tmp/.*"; @files = glob( $dir ); foreach (@files ){ print $_ . "\n"; } # 显示 /tmp 和 /home 目录下的所有文件 $dir = "/tmp/* /home/*"; @files = glob( $dir ); foreach (@files ){ print $_ . "\n"; }

以下实例可以列出当前目录下的所有文件:

实例

#!/usr/bin/perl opendir (DIR, '.') or die "无法打开目录, $!"; while ($file = readdir DIR) { print "$file\n"; } closedir DIR;

如果你要显示 /tmp 目录下所有以 .c 结尾的文件,可以使用以下代码:

实例

#!/usr/bin/perl opendir(DIR, '.') or die "无法打开目录, $!"; foreach (sort grep(/^.*\.c$/,readdir(DIR))){ print "$_\n"; } closedir DIR;

创建一个新目录

我们可以使用 mkdir 函数来创建一个新目录,执行前你需要有足够的权限来创建目录:

实例

#!/usr/bin/perl $dir = "/tmp/perl"; # 在 /tmp 目录下创建 perl 目录 mkdir( $dir ) or die "无法创建 $dir 目录, $!"; print "目录创建成功\n";

删除目录

我们可以使用 rmdir 函数来删除目录,执行该操作需要有足够权限。另外要删除的目录必须的空目录:

实例

#!/usr/bin/perl $dir = "/tmp/perl"; # 删除 /tmp 目录下的 perl 目录 rmdir( $dir ) or die "无法删除 $dir 目录, $!"; print "目录删除成功\n";

切换目录

我们可以使用chdir 函数来切换当期目录,执行该操作需要有足够权限。实例如下:

实例

#!/usr/bin/perl $dir = "/home"; # 将当期目录移动到 /home 目录下 chdir( $dir ) or die "无法切换目录到 $dir , $!"; print "你现在所在的目录为 $dir\n";

执行以上程序,输出结果为:


你现在所在的目录为 /home