>>>>> "Dan" == Dan Muey <[EMAIL PROTECTED]> writes:

Dan> for(`ls /files/`) {
Dan>    if(`cat $_ |grep $string`) { push(@matchedfiles,$_); }
Dan> }

Hmm.  Where to begin?

- Dangerous use of ls.
- Useless use of cat.
- Dangerous use of backticks.
- Shelling out when every one of those steps is done as well
  or better by Perl.
- Insecure use of child shells

In short, code that should be used as a "BEFORE" model in a "BEFORE"
and "AFTER" talk on any of the subjects of best practices, security,
optimizing for speed, maintainability, dealing with filenames with
whitespace, etc etc.

Dan> Then you are only greping one file at a time instead of a list of
Dan> too many.  Of course what would be better is to use the readdir()
Dan> functions to list the files and open() and grep() combo to grep
Dan> the contents. But the same principle applies.

More than just better.  More correct.  Safer.  Faster.  Easier to
maintain.  Less likely to break when tried on real-world stuff.

I say this not because I am criticizing you Dan, but because I want to
make sure that NOBODY ELSE ON THIS BEGINNER LIST COPIES THAT CODE for
their own purposes.  It's really just so far off the mark to be badly
dangerous.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to