in reply to Debugging Aid

Maybe a little "cleaner"?:

sub Debug_aid
{
   my ($out, $type) = @_ ; 
   my $timestamp =  scalar localtime();
   my %file = ( 'w' => ">$out",
                'a' => ">>$out"
   );

   open (DEB, $file{$type}) or return 1 ;
   print DEB "timestamp -> $out\n\n";
   close (DEB) ;
   return 0 ;
}

Also I would suggest using Data::Dumper it is a life saver if you are ever needing to look at Structures. I almost always "use" it these days. anlother tip would be to accept another var called $debug then set an if on the print. This way you can set a cmd arg for debug messages or not..
sub Debug_aid
{
   my ($out, $type, $debug) = @_ ;
.....
   print DEB "$dt -> $out\n\n" if $debug;
 
Or be more eficient:
sub Debug_aid
{
   my ($out, $type, $debug) = @_ ;
   return(0) if (! $debug); 


Always more than one way!.