#!/usr/bin/perl use strict; use warnings; use File::Copy; use File::Spec; use Time::localtime; use Fcntl ':flock'; my $log_dir=File::Spec->catfile('/path','to','logs',"my_logfile.log"); my $local_dir=File::Spec->catdir('/path','to','file'); my $file="myzip_file.zip"; my $pkunzip=File::Spec->catfile('/usr','bin','pkunzip'); open (STDOUT, ">$log") or exit 1; open (STDERR, ">>&STDOUT") or exit 2; flock(STDOUT, LOCK_EX | LOCK_NB) or exit 3; truncate STDOUT, 0; #clear out STDOUT to start with a fresh log file. chdir $local_dir or die "Cannot change to $local_dir. $!"; system "$pkunzip -doA $local_dir/$file"; exit;