http://www.perlmonks.org?node_id=826307


in reply to Re^2: It's the little things...
in thread It's the little things...

    "Not using the shell for the sake of not using the shell is very unPerlish"

<Sigh> -- Not exactly what I meant, but because you may have misunderstood my intended message, let me rephrase it:  Why go to the shell when you can do it just as easily in Perl?

Of course I use the shell when it makes sense.  Without hesitation.  But it's not a good idea (for a number of reasons) to get in the habit of blindly running to the shell without considering the alternatives.  One reason the comes to mind is portability.  Another is speed.

And yes, I'm aware that in a little program that uses the shell for nothing other than stripping the basename from its own path there is unlikely to be noticeably slower than its alternative.  But what if your script is so useful that some other program now calls it thousands or millions of times?  And some other program calls that one thousands or millions of times?  Eventually you run the risk of encountering leaky abstractions.

I'll confess, there are plenty of times I've done:

% cat somefile | grep somestring

But I still try to be aware that it's overkill, just like instinctively using the shell (when you don't necessarily have to) can be.


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/