use Data::Dumper; sub run_tests { my $href = shift; # by doubt always try to dump the data # print STDERR Dumper( $href ); foreach my $test (keys %{$href}) { $log->info("running test $test with parameters $href->{$test}"); } exit; } #### 2016/10/31 13:47:06 7732 [0] logger_1175005.pl 23 ess2_loader - logging successfully 2016/10/31 13:47:06 7732 [0] logger_1175005.pl 29 ess2_loader - trying to spawn child for periodic check... 2016/10/31 13:47:06 7732 [11] logger_1175005.pl 31 ess2_loader - successfully spawned PID -5796 2016/10/31 13:47:06 -5796 [11] logger_1175005.pl 34 ess2_loader - running check as PID -5796 #### 2016/10/31 13:47:21 19276 [0] logger_1175005.pl 23 ess2_loader - logging successfully 2016/10/31 13:47:21 19276 [0] logger_1175005.pl 29 ess2_loader - trying to spawn child for periodic check... 2016/10/31 13:47:21 19276 [14] logger_1175005.pl 31 ess2_loader - successfully spawned PID -5168 2016/10/31 13:47:21 -5168 [14] logger_1175005.pl 34 ess2_loader - running check as PID -5168 2016/10/31 13:47:21 -5168 [19] Tools.pm 22 Tools.run_test - running test baz with parameters foobar 2016/10/31 13:47:21 -5168 [19] Tools.pm 22 Tools.run_test - running test foo with parameters bar