$level1 = "LEVEL1"; $level2 = "LEVEL2"; $level3 = "LEVEL3"; $setting1 = "level1"; $setting2 = "level2"; $setting3 = "level3"; use Tie::CaseInsensitive; tie %{$HASH{$level1}{$level2}{level3}}, 'Tie::CaseInsensitive'; $HASH{$level1}{$level2}{level3} = 3; $HASH{$setting1}{$setting2}{setting3} = "Three"; use Data::Dumper; print Dumper \%HASH;