On Fri, Jul 22, 2011 at 12:49 PM, epement <> wrote:
> Just installed Strawberry Perl, and their batch files (perldoc.bat, etc.) are emitting syntax errors under TCC 12, whereas there are no errors under plain vanilla CMD.EXE . Sample error:
>
>
> Code:
> ---------
> [0]> perldoc -f reverse
> The syntax of the command is incorrect.
> A subdirectory or file .exe already exists.
> Error occurred while processing: .exe.
> A subdirectory or file more already exists.
> Error occurred while processing: more.
> ---------
> Before I poke around to resolve it on my own (which I can probably do, given enough time),
> I thought I'd ask if others have run into this issue before and found a workaround. Thanks.
I don't see that here using the current TCC/LE:
reverse LIST
In list context, returns a list value consisting of the elements
of LIST in the opposite order. In scalar context, concatenates
the elements of LIST and returns a string value with all
characters in the opposite order.
print join(", ", reverse "world", "Hello"); # Hello, world
print scalar reverse "dlrow ,", "olleH"; # Hello, world
Used without arguments in scalar context, reverse() reverses $_.
$_ = "dlrow ,olleH";
print reverse; # No
output, list context
print scalar reverse; # Hello, world
Note that reversing an array to itself (as in "@a = reverse @a")
will preserve non-existent elements whenever possible, i.e., for
non magical arrays or tied arrays with "EXISTS" and "DELETE"
methods.
This operator is also handy for inverting a hash, although there
are some caveats. If a value is duplicated in the original hash,
only one of those can be represented as a key in the inverted
hash. Also, this has to unwind one hash and build a whole new
one, which may take some time on a large hash, such as from a
DBM file.
%by_name = reverse %by_address; # Invert the hash
Note that their batch files do some sanity checks:
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
______
Dennis