Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^2: Perl losing, unfairly

by demerphq (Chancellor)
on Jun 16, 2004 at 11:08 UTC ( #367178=note: print w/ replies, xml ) Need Help??


in reply to Re: Perl losing, unfairly
in thread Perl losing, unfairly

I mailed the author with some issues and have recieved a reply. One part is relevent to what you just said:

i fixed. For example, for   % perl -le 'print $ARGV[0]' i take the length of   -l print $ARGV[0]

But the fact remains that he has NOT been generous to Perl. In fact the way I read the code hes been ungenerous to perl. Consider all the examples that involve or exit 1 (which is not normal idion to return an error value to the OS in perl, unless that error MUST specifically be 1, any sane programmer would use die,) or the fact that in many of the examples he includes the invocation in the perl examples but not in any of the other examples.

But what really gets me is the File::Find example. His code reads to me the way someone would write it if they deliberately want to disadvantage perl.

use File::Find; find({ no_chdir => 1, wanted => sub { if (($o = $_) =~ s/\.c$/.o/ && -M $_ <= -M $o) { print "compiling $_ to $o\n"; system qw(gcc -c -o), $o, $_; } } }, '.');

Why the no_chdir here, or the options hash at all?

use File::Find; find sub { if (($a = $_) =~ s/\.c$/.o/ && -M $_ <= -M $a) { print "compiling $_ to $a\n"; system qw(gcc -c -o), $a, $_; } }, '.';

So, by my reading of this once these changes are made Perl wins.


---
demerphq

    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi



Comment on Re^2: Perl losing, unfairly
Select or Download Code
Re^3: Perl losing, unfairly
by dreadpiratepeter (Priest) on Jun 16, 2004 at 12:57 UTC
    Actually, I missed that in the File::Find example. In fact either the Perl test (and some others) is invalid or the shell test (and some others) is.
    The shell script compiles recursively, and the Perl has a check to avoid compiling recursively. One of them violates the goal of the script

    As far as the exit stuff goes, I realized that it could be written better as:
    exit !-e "/etc/mtab"
    I emailed the author with the exit changes (and reiterated your File::Find findings). Hopefully he will resolve them.


    -pete
    "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."

      As far as the exit stuff goes, I realized that it could be written better as:

      Except that will exit regardless, which I dont think is the objective. I prefer

      -e "/etc/mtab" or die;

      :-)


      ---
      demerphq

        First they ignore you, then they laugh at you, then they fight you, then you win.
        -- Gandhi


        That's kind of the bigger problem, the author doesn't list the objectives very clearly.

        MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
        I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
        ** The third rule of perl club is a statement of fact: pod is sexy.

        The assumption that I got from reading the rest of the examples is that the intention is to always exit. Some of the other scripts use that approach.


        -pete
        "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://367178]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2014-09-21 06:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (167 votes), past polls