Apparently, $ENV{HOSTNAME} is a bashism, and given the Sys::Hostname modules appears to be available, we can just use that.
use File::Slurp qw(slurp write_file);
use Carp;
use File::Basename;
+use Sys::Hostname;
+my $hostname = hostname;
my $baseDir = '/vserver/';
my $profileBaseDir = $baseDir . '.profile/';
my $data = slurp($key);
$data =~ s/__VSNAME__/$vsname/g;
$data =~ s/__VSIPADDR__/$ipaddr/g;
- $data =~ s/__HOST__/$ENV{HOSTNAME}/g;
+ $data =~ s/__HOST__/$hostname/g;
write_file($vsroot . '.template', $data);
system('mv', $vsroot . '.template', $vsroot . $templates{$key} . $file);
}