in reply to preserve array from getting re-initilize

return \@verbose if($info eq 'verbose');

You are returning a reference to the array @verbose so your array could be altered or re-initilized outside this subroutine.

my $time = scalar localtime(); $time =~ /(\d\d:\d\d:\d\d)/; $time = $1;

That is usually written as:

my $time = sprintf '%02d:%02d:%02d', ( localtime )[ 2,1,0 ];