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="namelist.log";open(INDIR,"list");
while($line = <IN_D
使用方法简单,在当前
目录
下,使用
perl
make_f.pl xx,xx为例化的filelist
文件名
,按下回车将会生成.f文件,里面列出了当前
目录
下所有.v文件的绝对路径,将脚本中.v替换成.c也可以检索当前
目录
下的所有.c文件,以此类推。
使用这个脚本不仅能够生成filelist文件,也能方便用户查看
目录
下的代码结构