On Thu, Apr 21, 2005 at 10:18:17AM +0200, Michele Dondi wrote:
: Are the -X functions still going to be there? I definitely hope so! 

Certainly.  They're useful, and one of the things people love about Perl.
In fact, we're enhancing them to be stackable, so you can say

    if -r -w -x $filename {...}

to "and" the conditions.  Or maybe there's a better solution to that
now that we have junctions, on the order of

    if $filename ~~ -r & -w & -x {...}

Then we also get our "or" for free.  We'd just say that ~~ binds
the default of -X just as it does m// or s///.

The only fly in the ointment is that this is awfully ambiguous because
-X is a unary operator looking for an argument, and you're not giving
it one.  But it might think the next thing is a sub ref starting with '&'.
Ouch.  Not sure where to go with that, other than require space or parens
when ambiguous.

: However, to come to the actual question, it has happened to me to have to 
: do, in perl5 that is:
: 
: perl -lne 's/^"//;s/"$//;print if -e'
: 
: or (less often)
: 
: perl -lne '$o=$_;s/^"//;s/"$//;print $o if -e'
: 
: 
: Ok: no much harm done (to my fingertips). But then, talking about 
: huffmanization, could a standard adverb be provided for -X's to the effect 
: of specifying that the passed filename is quoted, say in double (or if 
: sensible in single) quotes: for I find that to be a common filelist 
: "format". Ideally, what I'd like to do is
: 
: perl -lne 'print if -e :q'

It seems to me that -e «$_» would handle most of these cases, as long as
whitespace always comes in quoted so that you always end up with one word.
That seems more general than a special option to -X ops.

Larry

Reply via email to