in reply to No ... but how about a !~ /[a-z0-9]/i challenge?
in thread !~ /\w/ challenge, anyone?

Care to share the insight as to why he used the globs?
  • Comment on Re: No ... but how about a !~ /[a-z0-9]/i challenge?

Replies are listed 'Best First'.
Globs for more portable one-liners
by jeffa (Bishop) on Feb 06, 2003 at 14:15 UTC
    Sure, but this is just a hunch ...

    The problem with one-liners (;)) is that Unix prefers the -e argument (the code) to be quoted with double quotes, while Win32 requires that is it be quoted with single quotes. Unix allows single quotes, but most (if not all) shells will try to interpolate the dollar signs. The following code should work on Win32, but not in UNIX:

    # bash and sh [jeffa@trinity perl]$ perl -ple "}{$_=$." foo.pl Can't modify constant item in scalar assignment ... # csh and tcsh [jeffa@trinity ~/perl]$ perl -ple "}{$_=$." foo.pl Illegal variable name. # ksh $ perl -ple "}{$_=$." foo.pl Bareword found where operator expected ...
    In all of these cases, single quotes instead of double quotes would alleviate these errors. But .. it's not necessarily the double quotes themselves that cause the trouble, it's the dollar signs. So ... use globs.
    perl -ple "}{*_=*." foo.pl
    Now, Abigail-II never confirmed nor denied this, so i'll treat that as a successfully executed Unix command. ;)

    Update:
    Of course (as jmcnamara pointed out to me via /msg), Abigail-II appears to never use Windows ... kinda throws a monkey wrench in the theory, but ... globs still get around that quoting problem.

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)