From bcc3e970c00d09f8864dd94ca7fe2bc8a1a4dca2 Mon Sep 17 00:00:00 2001 From: Karen Etheridge Date: Thu, 18 Apr 2013 15:11:42 -0700 Subject: [PATCH] fix "Can't use an undefined value as an ARRAY reference at ... line 177" when exec fails and program_args is not defined --- Changes | 1 + lib/Daemon/Control.pm | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index bf10d8e..f5f8f5f 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,6 @@ * create dir for pid_file if it does not exist + * fix uninitialized warning in error when exec fails 0.001000 2013-02-26 SymKat * fixed a warning on "uninitialized value $called_with in substitution" diff --git a/lib/Daemon/Control.pm b/lib/Daemon/Control.pm index 515c812..b7987ce 100644 --- a/lib/Daemon/Control.pm +++ b/lib/Daemon/Control.pm @@ -247,12 +247,14 @@ sub _launch_program { $self->trace( "chdir(" . $self->directory . ")" ); } + my @args = @{$self->program_args || [ ]}; + if ( ref $self->program eq 'CODE' ) { - $self->program->( $self, @{$self->program_args || []} ); + $self->program->( $self, @args ); } else { - exec ( $self->program, @{$self->program_args || [ ]} ) + exec ( $self->program, @args ) or die "Failed to exec " . $self->program . " " - . join( " ", @{$self->program_args} ) . ": $!"; + . join( " ", @args ) . ": $!"; } exit 0; }