in reply to Different behavior when parsing $0 on Solaris and Win32

I can't attempt to reproduce your results because I do not have access to those OS's. But, you could investigate further by showing us the contents of $0:
use strict; use warnings; print "script = >>>$0<<<\n"; my $log_file = (split /\./, $0)[0] . '.log'; print $log_file, "\n";
Basic debugging checklist