in reply to Re: Running a script iteratively.
in thread Running a script iteratively.

Eeeew. Backticks in void context? Use the right tool for the job.

The cake is a lie.
The cake is a lie.
The cake is a lie.

Replies are listed 'Best First'.
Re^3: Running a script iteratively.
by moklevat (Priest) on Apr 24, 2008 at 14:53 UTC
    I said it was non-robust. Perhaps I should have described it as "icky" instead?

      Robustness aside (as it suffers from the same lack of error checking the other proffered version below with system has :), it doesn't express the intent behind the code correctly. Backticks are for capturing the output from an external program; system is for starting an external program who's output you don't care about.

      It's like using map in void context to iterate over a list in place of for; yes it "works", but if the line of code is not building a new list of values from an existing list then you're using the wrong "phrasing" (by which I mean 'not the clearest') to express your intent (map is for expressing transformation, for is for expressing iteration).

      (And I won't go into the "PERL scripts" I've seen that basically consisted of a shebang line and then every line was shell commands in backticks . . . *shudder* :)

      Update: Tweaked for perldoc link somewhere more relevant per prodding from kyle.

      The cake is a lie.
      The cake is a lie.
      The cake is a lie.

Re^3: Running a script iteratively.
by Zen (Deacon) on Apr 24, 2008 at 19:55 UTC
    TIMTOWTDI