use strict; use warnings; my @msg = ( "This is line one.", "Line two.\n" ); die @msg; sub BEGIN { $SIG{__DIE__} = sub { my @log_files = qw( error.log ftp.log ); send_status_email( 'me@work.com', 'script error', @_, \@log_files ); }; } sub send_status_email { my ($to_address, $status, $message, $ar_attachments ) = @_; print "To: $to_address\n"; print "Status: $status\n"; print "Message <$message>\n"; foreach ( @$ar_attachments ) { print "ar: $_\n"; } print "***************** sub finished\n"; } __END__ **Output** To: me@work.com Status: script error Message ar: error.log ar: ftp.log ***************** sub finished This is line one.Line two.