I understand the trouble with using Activestate perl on cygwin is the path
conversion problem. Searching online I found the following wrapper script
useful for most perl commands:

        #! /bin/sh

        # This is necessary to make perl work with cygwin.  Cygwin passes
        # "cygwin style" paths to the program in the #! statement and
ActiveState
        # perl does not know what /cygwin/d/... means.
        #
        # So, we put #!/usr/local/bin/perl in the perl script and this is
called
        # This routine translates the path name to something of type d:/
        #
        args=""
        while [ $# -gt 0 ]
        do
            var="$1"
            shift
   
            if test "`echo $var | grep '/'`" = "$var"
            then
                # cygpath does the /cygwin/d/ to d:/ conversion
                var=`cygpath -w $var`

                # Then we have to swap \ for / (extra \ needed because the
                # shell makes a first pass at removing the \.
          #
                var=`echo "$var" | sed 's/\\\/\\//g'`
            fi
            args="$args $var"
        done

        # Finally the command is to call perl with the name of the script
and the args.
        #
        /c/Perl/bin/perl.exe $args


An example of one that does not work is as follows:

        perl -e 'print join "\n", @INC, "\n";'


For some reason, the script above strips the single quotes from the command
and therefore does not execute the command properly. Please advise.

Thanks,
Kevin


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to