Allow me to clean it up a bit:
- use strict
- use multi-argument system calls for safety
- don't rely on $ENV{'PATH'}
- Why use Time::localtime?
#!/usr/bin/perl
use strict;
use warnings;
$ENV{'PATH'} = '';
my $zipExec = '/usr/bin/zip';
my $chownExec = '/bin/chown';
#----------------GET TIME --------------------------
sub now
{
my @time = (localtime())[3 .. 5];
return sprintf ("%02d-%02d-%04d", $time[0], $time[1] + 1, $time[2] +
+ 1900);
}
my $g = now();
print "\nThe Time NOW:\t $g\n";
print "\n-------ZIPPING DATABASE-------\n";
my $zipdbname = "dbbackup$g";
my $zipexnname = "ExnCorp$g";
system($zipExec, '-r', $zipdbname, '/var/lib/mysql/*');
print "\n-------DATABASE ZIPPED-------\n";
print "\n-------ZIPPING EXN-------\n";
system($zipExec, '-r', $zipexnname, '/var/www/html/ExnCorp/*');
print "\n-------EXN ZIPPED-------\n";
$zipdbname .= '.zip';
$zipexnname .= '.zip';
system($chownExec, 'dev:dev', $zipdbname";
system($chownExec, 'devftp:devftp', $zipexnname";
Warning: code is untested.