I'm sorry, I can't quite tell what your question is.
As for the syntax for grep, you can write a simple one two ways.
The first is with a block and without a comma.
grep { /x/ } @source;
The second is with an expression and with a comma.
grep( /x/, @source );
The second one can be written without the parentheses, but not without the comma.
grep /x/, @source;
If you need to be more complicated than a simple expression, you need a block because you can't use a semicolon in a simple expression.
grep { my $x = $_; $x =~ s/\D//g; my $y = f( $x ); ( $y > $x ) } @source;
Sometimes you can cook a bit with operators.
grep s/\D//g && f( $_ ) > $_, @source;
...but not always. The difference between the last two examples is that the second one modifies @source, while the second one doesn't.
Again, I can't tell what your question is, so I don't know if it helps. Hopefully there's something useful.
In reply to Re: The way around < 5.6.x grep(... [,]* readdir(DIR)
by kyle
in thread The way around < 5.6.x grep(... [,]* readdir(DIR)
by MichaelORourke
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |