Chinaunix
标题:
请教判断目录的写法
[打印本页]
作者:
db2_aixer
时间:
2012-10-16 14:47
标题:
请教判断目录的写法
小弟新手 准备实现个小需求。我要取出某个目录的里面一些子目录名,比如:/home/oracle下的 a1 a2 a3 个目录,如果/home/oracle里面还含有文件名和目录名相同,我就只打印出目录名 我的写法:
opendir(TMP,'/home/oracle') || die "re";
@d=grep(/a[0-9]$/,readdir TMP);
foreach (@d){
if( -d $_ ){
print "$_";
}
}
运行什么都没有,请教下改怎样处理,谢谢
作者:
kk861123
时间:
2012-10-16 15:00
回复
1#
db2_aixer
请使用绝对路径:
if( -d "/home/oracle/$_" ){
print "$_";
}
复制代码
作者:
db2_aixer
时间:
2012-10-16 15:05
感谢kk861123回复 可以了 学习了
作者:
jason680
时间:
2012-10-16 15:10
本帖最后由 jason680 于 2012-10-16 15:11 编辑
回复
1#
db2_aixer
perldoc -f readdir
...
If you're planning to filetest the return values out of a
"readdir", you'd better prepend the directory in question.
Otherwise,
because we didn't "chdir" there, it would have been
testing the wrong file.
opendir(my $dh, $some_dir) || die "can't opendir $some_dir: $!";
@dots = grep { /^\./ &&
-f "$some_dir/$_"
}
readdir
($dh);
closedir $dh;
作者:
frankhyk
时间:
2012-10-18 11:04
为什么要特意写一下"$_",默认的不就是对它操作吗?去掉"$_"就可以了吧。
作者:
斯文牛氓
时间:
2012-10-19 10:49
回复
5#
frankhyk
怕你看不懂把
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2