Phoenix.pm: Three snippets
Tim Ayers
tayers at bridge.com
Thu May 3 21:43:30 CDT 2001
>>>>> "W" == Webmaster <webmaster at azwebs.com> writes:
W> Lastly, I just learned a fileglobbing technique...
W> I was writing:
W> opendir(DIR, $dir);
W> while (readdir(DIR)) {
W> next if /\./; # don't want current dir and parent dir
W> &dosomething_with_file
W> }
W> closedir(DIR);
W> But this could be written as simply as:
W> map { &do_file_or_dir } <$dir/*>;
W> or
W> map { &do_dirs_only } grep {-d} <*>;
W> I don't know why (anyone?...) but when file globbing, the '.' and the '..'
W> do not appear as they do when doing readir(DIR).
The < > operator does UNIX-like filename expansion, so <*> won't match
'.' or '..'. <.*> will, but then you don't get the non-dot files.
The only way I can think to mimic readdir would be (<.*>, <*>) if you
ever wanted to do that concisely. See 'perldoc -f glob' for more detail.
HTH and
Hope you have a very nice day, :-)
Tim Ayers (tayers at bridge.com)
More information about the Phoenix-pm
mailing list