in reply to Re^2: use Text::CSV 1.13 please - if you can get it
in thread use Text::CSV 1.13 please - if you can get it

Try double quotes  (the default Windows shell does not use ' for quoting)

Replies are listed 'Best First'.
Re^4: use Text::CSV 1.13 please - if you can get it
by Tux (Canon) on Sep 25, 2009 at 14:58 UTC

    The quotes are not the problem. Windows is. The example was meant as an excercise to the reader, but that doesn't seem to work :(

    perl -pi.bak -we...

    will solve this specific issue, but it won't fix the way he thinks


    Enjoy, Have FUN! H.Merijn
      The quotes are not the problem.

      Are you sure?   (It might not be the only problem, but I think at least one...)

      I don't have a Windows box here to try, but IIRC, ' is not treated as a special character by the Windows shell, so it just passes on the single quotes as is. IOW, the Perl program would get the string constant 's{Text::CSV}{Text::CSV_XS}g' as the code to run (instead of the substitution command without the quotes) — which is why it rightly complains "Useless use of a constant in void context".  You'd get the same error on Unix if you had typed (of course, this doesn't work on Windows either... just to illustrate what's happening):

      $ perl -pi -we"'s{Text::CSV}{Text::CSV_XS}g'" *.pl Useless use of a constant in void context at -e line 1.

        OK, not entirely correct, but to fix the problem of the error message, i- needs something more on windows:

        C:\Tmp>perl -pi -we's{Text::CSV}{Text::CSV_XS}g' xx.pm Useless use of a constant in void context at -e line 1. Can't do inplace edit without backup. C:\Tmp>perl -pi -we"s{Text::CSV}{Text::CSV_XS}g" xx.pm Can't do inplace edit without backup. C:\Tmp>perl -pi.bak -we's{Text::CSV}{Text::CSV_XS}g' xx.pm Useless use of a constant in void context at -e line 1. C:\Tmp>perl -pi.bak -we"s{Text::CSV}{Text::CSV_XS}g" xx.pm C:\Tmp>

        But I'm sure perl -e"'...'" will not work anywhere.


        Enjoy, Have FUN! H.Merijn