If you must use HOA, I prefer to refer to the index with a Readonly variable rather than with a constant because it can interpelate into a string.
use strict;
use warnings;
use Readonly;
Readonly::Scalar my $COLOR => 1;
my %hash = (
ef56 => [],
);
push @{ $hash{"ef56"} }, 2.6, "red", 4;
print "The color of Item ef56 is $hash{'ef56'}[$COLOR]\n";