Thanks for all your advice. Passing %ERRORLEVEL% as parameter is one workaround, but it would break the ease of implementation by using my script as filter.
There obviously exits no way accessing %ERRORLEVEL% from perl without passing it as parameter, so things like
cmd /c "make 2>&1 | perl vcproj_filter.pl"
must be changed in batch file like
make > output.txt 2>&1
perl %ERRORLEVEL% output.txt"
Unfortunatly the following doesn't work:
cmd /c "make > output.txt 2>&1 && perl %ERRORLEVEL% output.txt"
It seems if you start more then one process using
&& or
| ERRORLEVEL is not set for each process but only for the last one.
That's why using my script in a pipe and reading %ERRORLEVEL% would never work. I finally use a seperate perl script from where I make the call to make via system() and gather the return code from $?. The output is filtered afterwards.
Thanks for the help!