glob already does the matching, according to the patterm you've specified, and returns the filtered filename list. In many cases, there's no need for further testing. But in case you should want to do so (e.g. to filter by a regular expression, which would allow more sophisticated matching than the shell patterns understood by glob), you could use an additional grep. For example, to get all filenames that start with a substring "foo", which isn't (immediately) followed by "bar":
#!/usr/bin/perl -l use strict; use warnings; my @files = grep /^foo(?!bar)/, glob("foo*"); print for @files;
(of course, in this case, using ..., glob("*") would have the same effect, in which case all the filtering would be done by grep alone...)
In reply to Re^3: search a particular file
by almut
in thread search a particular file
by raghu_shekar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |