in reply to Re^2: script running on linux but not windows -- File::Spec
in thread script running on linux but not windows

You might be interested in the original error string ($! and $^E) which might tell you more about the problem. Don't use the filehandle to report errors related to the filehandle itself.
open $sqlFh, '>', $sqlLog or die "Could not open $sqlLog for writing.\ +n$!\n$^E\nExiting...\n";

BTW, do you know that double quotes interpolate variables?

$scriptLog = "C:/Users/thclotworthy/squirrel/logs/squirrel-$creationTi +me.log";

Also, declaring all the variables in one place usually makes their scope too wide. It's better to declare them only for the scope where they're really needed.

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,