- 如果将tail命令输出保存到变量?
- 关于perl中的pack函数
- 请教:用perl如何合并文件
- Perl有求绝对值的操作或者函数吗?
- 帮忙看一个安装模块错误的问题.
- 简单的文件内容如何初始化入hash数组?
- 接下来该怎么办?
- htonl在perl是如何实现的,要引用哪个模块?
- perl高手请进--GUI课题--用到Tk,Win32OLE,Hspice...(附程序)
- 求一条匹配合法IP地址的正则表达式(要考虑全面哦)
- 看贴有感:新成立公司用perl做web开发
- [求助]怎样在linux下一行perl命令行中加入换行符??
- 【求救】Perl解析中文Excel乱码问题&&Unicode安装问题
- 读取文件后,怎么判断该文件里是否有乱码?
- 请介绍几本学习perl的经典书籍
- Perl 书籍大全 下载
- 用perlcc编译出现/usr/ucb/cc: language optional software package not installed
- 如何统计某字符串中,3个正则各出现几次?
- [分享]Thinking in Perl [PDF中文版]
- 解决Perl 5.8.8用XML::RSS无法解析非utf-8编码的RSS问题
2007-9-26 17:40marscld
readdir函数返回值是空串
请教一下,首先使用opendir打开目录句柄,成功。
接着读取目录中的文件名集合,可是得到的却是和目录下内容等数量的空串,即 文件名 eq '';
Code:
opendir( DIR, $directory ) or die "open dir error";
my $number = 0;
while(defined($name = readdir (DIR))) {
$number++;
if($name eq "") {
print "Value -$name* is null string."
}
print "Loop $number-->$name**\n";
next if $name eq "." || $name eq "..";
next unless $name =~ /(.*)\.lip$/;
push @names, $name;
}
如果目录下有5个文件,那么读出的是7项''。为何无法读到文件名呢?
[ 本帖最后由 marscld 于 2007-9-26 17:48 编辑 ]
请教一下,首先使用opendir打开目录句柄,成功。
接着读取目录中的文件名集合,可是得到的却是和目录下内容等数量的空串,即 文件名 eq '';
Code:
opendir( DIR, $directory ) or die "open dir error";
my $number = 0;
while(defined($name = readdir (DIR))) {
$number++;
if($name eq "") {
print "Value -$name* is null string."
}
print "Loop $number-->$name**\n";
next if $name eq "." || $name eq "..";
next unless $name =~ /(.*)\.lip$/;
push @names, $name;
}
如果目录下有5个文件,那么读出的是7项''。为何无法读到文件名呢?
[ 本帖最后由 marscld 于 2007-9-26 17:48 编辑 ]
2007-9-26 17:59royalzhang
哦,明白了,你是说你的@names为什么为空是吧?
你的这行:
不好意思,对于网络的,我不懂,请教其他强人
至于你的结果为什么不对,我很困惑,因为我用自己电脑测试是通过的,结果都显示了的
如果你要收集.lip结尾的,只需要把我写的那个 push @names,$name if $name !~ /\.lip$/;
改成 push @names,$name if $name =~ /\.lip$/;
也就是!~改成=~就可以了
$directory ,你那里不知道会不会出在这个上面,我测试的时候,使用了"/."来代替你的$directory
其他爱莫能助了
你的这行:
|
不好意思,对于网络的,我不懂,请教其他强人
至于你的结果为什么不对,我很困惑,因为我用自己电脑测试是通过的,结果都显示了的
如果你要收集.lip结尾的,只需要把我写的那个 push @names,$name if $name !~ /\.lip$/;
改成 push @names,$name if $name =~ /\.lip$/;
也就是!~改成=~就可以了
$directory ,你那里不知道会不会出在这个上面,我测试的时候,使用了"/."来代替你的$directory
其他爱莫能助了
2007-9-26 20:40marscld
回复 #9 perljoker 的帖子
多谢了
多谢了
2007-9-26 23:40royalzhang
修改一下你的目录的权限,让其它用户可读。
2007-9-27 09:48marscld
用'ls -l'命令输出目录的内容,可以得到所有的文件信息列表,不过每次的 readdir 都取得空。
my $ls_result = `ls -l ./`;
print "------ls result: $ls_result###";
[ 本帖最后由 marscld 于 2007-9-27 09:50 编辑 ]
my $ls_result = `ls -l ./`;
print "------ls result: $ls_result###";
[ 本帖最后由 marscld 于 2007-9-27 09:50 编辑 ]
本篇来自:百家学院 (http://www.9php.com),转载请保留此行.
·上一篇:已经没有了 · 下一篇:求教:Net::Telnet模块: $telnet->cmd(ls)的返回值

