因此,我最近注意到在脚本中使用了opendir,并希望稍微更改它,以便它返回目录的子文件夹中的文件以及目录本身中的文件.在调查之后,我无法为opendir找到任何类型的递归选项,并且在使用glob返回标量时遇到了麻烦.因此,我认为只要问一下:在dir及其子目录中处理所有文件的标准方法是什么,而不是用另外一个进行捏造.
解决方法
经典的方式是
File::Find,它具有作为核心模块的优势,但它可能有点痛苦.如果您能够使用第三方模块,File::Util非常方便:
use File::Util; my $fu = File::Util->new; my $root = 'foo/bar'; my @dirs_and_files = $fu->list_dir($root,'--recurse'); my @files_only = $fu->list_dir($root,'--recurse','--files-only');