|No such thing as a small change|
I have been using Strawberry Perl's portable edition exclusively for a couple of years now, because I want my clients to be able to run on exactly the same environment as me.
However, I recently ran into a situation where Perl is behaving differently for my client than it is for me.
We are running on exactly the same portable environment -- actually extracted from the very same .zip file. I even modified the portableshell.bat to eliminate all but essential Windows environment variables. However, when my client runs certain scripts, he gets different results than I do.
Details: Strawberry Perl, Portable Edition version 5.16.0. Running on Windows 7. I have verified that only modules within the portable environment are loaded using the "M" command in debug mode.
Symptoms: For scripts that use an input file (using while (<>)), client's Perl always fails for the first line of the input file. I cannot replicate this in my (identical) environment. The error is from a manufacturer-supplied API, and the generic portion of the message is: "Inappropriate I/O control operation"
Any thoughts? If not on a solution, on a path for troubleshooting?
My only thought is to create a very simple script that uses an input file, and going line-by-line in debug. If I can find a difference there, my question will essentially be the same: What could possible cause a portable Perl environment to behave differently on one Windows 7 system than another?