$element contains "Battery Failure".
There is no such key in %error_code, so $error_code{$element} returns undef.
The nearest valid key would be "SysBatteryFailure" , so you need to figure out how to get that into $element.
ALso, you need to decide if @ILO_ERRORS has a hashref element, or is a simple array. You are attempting to use it both ways.
After you get $element set correctly, if you want to use @ILO_ERRORS as an array, try:
To get $element to work right, you could try:my @ILO_ERRORS = (); # Empty LIST; not {}, which is a hash ref ... push @ILO_ERRORS, $error_code{$element}; .... if (@ILO_ERRORS) { print "SNMP CRITICAL - @ILO_ERRORS \n"; # Note - array interpolated + INSIDE QUOTES, "\n" added ...
my ($key) = grep {$error_code{$_} =~/$element/} keys %error_code; # Note - parens around ($key) provide the required list context $key and push @ILO_ERRORS, $error_code{$key};
"I'm fairly sure if they took porn off the Internet, there'd only be one website left, and it'd be called 'Bring Back the Porn!'"
-- Dr. Cox, Scrubs
In reply to Re: Pushing an hash into an array
by NetWallah
in thread Pushing an hash into an array
by sami.strat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |