温故而知新,Perl的文件遍历

DDGG 2011-01-28 01:01:37
glob("*"); # 搜索当前路径下的所有文件和目录

glob("./*"); # 同上

glob("*.h *.cpp"); # Perl的glob支持同时搜索多个匹配,用空格分隔。

glob("./Program Files/*"); # 基于上面的原因,搜索带空格的路径时会有问题,
glob("'./Program Files/'*"); # 此时需要将含有空格的路径放入单引号中。

$path = "Program Files";
glob("'./$path/'*"); # 单引号中有变量也支持

glob("'./'*"); # 但如果单引号中并没有空格,glob就罢工了...将会找不到任何东西,奇怪

=一个例子
这里是多行注释
=cut
my @dir_files = glob("*")
foreach (@dir_files)
{
if (-d $_) # 检测路径是否为目录
{
...
}
}
...全文
382 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
proorck6 2011-01-30
  • 打赏
  • 举报
回复
我也喜欢用Perl
DDGG 2011-01-28
  • 打赏
  • 举报
回复
博客果然开始维护啦,顶不住啦。
DDGG 2011-01-28
  • 打赏
  • 举报
回复
确实,没那问题了,哈哈!
iambic 2011-01-28
  • 打赏
  • 举报
回复
use File::Glob ':glob';

DDGG 2011-01-28
  • 打赏
  • 举报
回复
bsd_glob应该引用哪个模块呢
iambic 2011-01-28
  • 打赏
  • 举报
回复
“斜杠”应该是“反斜杠”:'.../program\ files/...'
iambic 2011-01-28
  • 打赏
  • 举报
回复
转义空格最好在前面加个斜杠。用单引号太丑了。多个pattern用*.{h,cpp}比较好,不太喜欢用空格分隔多个pattern这种写法,在shell里自然还可以,作为一个函数提供这个设计就有点烂。另外可以用bsd_glob,应该就没有那种空格问题了。
DDGG 2011-01-28
  • 打赏
  • 举报
回复
CSDN博客好像当机啦!
DDGG 2011-01-28
  • 打赏
  • 举报
回复
新就是带空格的路径,还有单引号里面如果没有空格,glob就会罢工的问题。
fibbery 2011-01-28
  • 打赏
  • 举报
回复
我倒是觉得glob挺好用的。
iambic 2011-01-28
  • 打赏
  • 举报
回复
一般直接<*>,很少用glob。
看着奢扣 2011-01-28
  • 打赏
  • 举报
回复
温得好,新在哪呢?

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧