in reply to Re^5: What does _ mean?
in thread What does _ mean?

How many places do you see '-d'?

None.

How many places do you see '_'?

It should be used just about everywhere -d is used.

-d is the same as the unix file test, '_' is the same as ???.

I guess you'll be disappointed when you try to use _ with test.

Replies are listed 'Best First'.
Re^7: What does _ mean?
by pileofrogs (Priest) on Feb 04, 2009 at 17:29 UTC

    A google code search for '" -d " lang:perl' produces 108,000 results while a search for '"(_)" lang:perl' produces 6,000.

    I'll grant you, some of those -d results are spurious, someone documenting a '-d' command line switch and so on.

    Let's try and wrap this up. Do you agree with the statement, "-d $filename" is clearer than "-d (_)"? I'll agree that "-d (_)" is better for performance than "-d $filename". I'll even agree that my first post was stupid. OK?

      Do you agree with the statement, "-d $filename" is clearer than "-d (_)"?

      No. The meaning of neither is ambiguous. You may not know what they do, but I don't see how you could possibly think they do something than what they do.

        The "problem" is that the underscore in this case is an obscure feature. Most people will understand -d $filename while many will have to look up what the underscore does before they understand what -d (_) does. Use of obscure features makes code harder to understand and thus should be avoided unless there is a good reason for it. At least I think that's what pileofrogs meant.

        Elda Taluta; Sarks Sark; Ark Arks

        Okay, fair enough.

        What name would you give to the quality of code that enables one to read it quickly in poor conditions (half-asleep, drunk, etc...)?

      Your results are inconclusive, as -d _ without the parentheses would be enough. Maybe if you pit the total of -X $something against the total of -X _ plus -X(_) plus -X (_) etc you would have a better idea.

      Anyway, the point is moot because (IMHO!!) this:

      if( -x $filename and -d _ )
      is better, cleaner, more concise, and clearer, than
      if( -x $filename and -d $filename )
      because I am used to Perl and I know that anything that has _ in it means that thing we were just talking about, i.e., the Topic.
      []s, HTH, Massa (κς,πμ,πλ)