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";