use warnings;
use strict;

my $dir = "./test";
my $file;
my @dir;

opendir (DIR, $dir) or die "can't open the directory!";
@dir = readdir DIR;
foreach $file (@dir) {
if ( $file =~ /[a-z]*\.zip/) {
print $file;
} else {
print "Not the kind of file type you want!\n";
}
}

这段代码的含义就是:打开一个目录,读取所有的文件名,如果该文件名是以字母开头、并以.zip为后缀结尾的,则输出文件名称;否则,就输出提示消息。

当然,这段代码只会读取当前目录下的内容,并不会递归地寻找子目录下的内容。

第二种方法,直接用外部命令 find

在Unix Shell或是Cygwin里,有命令find可以直接读出目录下的文件名,而我们只要在Perl脚本里调用这个命令就可以了。

use warnings;
use strict;

my $dir = "./test";
my @file;
my $filename;


@file = `find $dir -type f`;

foreach $filename (@file) {
print $filename;
}

上面的代码就直接调用外部命令find来进行查找与读取。这个时候,查找的结果,完全由你所调用的外部命令所控制。

两个方法都比较方便,第一种的移植性更强,推荐使用。

如果你想用Perl读取一个目录下的所有文件名,你应该怎么办呢?一般来讲,我喜欢用两种方法。第一种方法,直接用readdir来读取目录句柄。use warnings;use strict;my $dir = "./test";my $file;my @dir;opendir (DIR, $dir) or die "can't open the directory!";
如果你想用 Perl 读取 一个 目录 下的所有 文件名 ,你应该怎么办呢?一般来讲,我喜欢用两种方法。 第一种方法,直接用readdir来 读取 目录 句柄。 下面展示一些 内联代码片。 use warnings; use strict; my $dir = "./test"; my $file; my @dir; opendir (DIR, $dir) or die "can't open the directory!"; @dir = readdir DIR; foreach $file (@dir) {
如果没有设置,获取有可能导致命令行下用ls -l 执行的结果和在 perl 中执行的结果时间显示不一致,导致获取 文件名 目录 失败。 在shell 中执行ls 命令显示如下格式: drwxr-xr-x 6 root root 4096 06-02 19:57 1234 在 perl 中ls -l 则显示如下的格式: drwxr-xr-x 6 root root 4096 Jun  2 1
my $dir ='F:\VirtualShare\NRT\2019183_14_02_igu1888'; my @files = glob( $dir ); foreach (@files ){ print $_ . "\n"; 运行结果: 文件夹未带文件描述时仅显示当...
<br />--------------------------------------------------------------- <br /> 调用系统命令dir或者ls,将其输出再放入一个数组就可以了. <br /> --------------------------------------------------------------- <br /> opendir(DIR, $dir_name) || die "Can't open directory $dir_name"; <b
你对 Perl 目录 操作函数的概念是否熟悉,这里向大家简单介绍一下, Perl 自带的函数远不及php多,但功能确实很强大,实现起来也只有几行代码。 AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统 本文和大家重点讨论一下 Perl 目录 操作函数的概念,这里主要介绍一下九种 Perl 目录 操作函数的用法,希望通过本文的学习你对 Perl 目录 操作函数的概念有所了解。 Perl 目录 操作函数: Perl 自带的函数远不及php多,但功能确实很强大,实现起来也只有几行代码。 1、 Perl 目...
system “touch name_list.log”; system “ls $dir_path >> name_list.log”; list="namelist.log";open(INDIR,"list = "name_list.log"; open (IN_DIR,"list="namel​ist.log";open(IND​IR,"list"); while($line = <IN_D
使用方法简单,在当前 目录 下,使用 perl make_f.pl xx,xx为例化的filelist 文件名 ,按下回车将会生成.f文件,里面列出了当前 目录 下所有.v文件的绝对路径,将脚本中.v替换成.c也可以检索当前 目录 下的所有.c文件,以此类推。 使用这个脚本不仅能够生成filelist文件,也能方便用户查看 目录 下的代码结构