in reply to Executing a string as a Perl command

This node falls below the community's threshold of quality. You may see it by logging in.
  • Comment on Reaped: Re: Executing a string as a Perl command

Replies are listed 'Best First'.
Re^2: Executing a string as a Perl command
by Jenda (Abbot) on May 10, 2011 at 13:57 UTC

    Drop the double quotes! They are not necessary (in this case) and just slow the code down. In some cases blindly enclosing variables in quotes would lead to strange looking bugs. This is Perl, not a shell script.

    Jenda
    Enoch was right!
    Enjoy the last years of Rome.

      The "slow the code down" is so small as to be non-existent.

      xoxo,
      Andy

        I agree. It's a question of readability. It requires extra thought to process the unexpected and useless quotes.

        Depends. If the variable contains a short string, then the slow down will be negligible. If it contains a number and the subroutine needs to do some more computations, then you've just forced perl to convert the number to a string and back. If nothing more, it's wasteful.

        Then there is yet another case. What if the variable contains a huge string? You've just made yet another copy ...

        Jenda
        Enoch was right!
        Enjoy the last years of Rome.

        I thought using eval in that way, on a scalar to execute a command is a NO-NO for security and not best practice!

        cant you just use the qx or system call?