У меня есть объект YAMLPerl YAML :: Крошечный прибудет хэш хэша переменных
$VAR1 = bless([
{
'Cluster2' => {
'source_mount' => '/mnt/uploads',
'destination_mount' => '/var/pub',
'default' => 'no',
'dir' => '/a /d /e'
},
'Cluster1' => {
'source_mount' => '/mnt/uploads',
'destination_mount' => '/var/pub',
'default' => 'yes',
'dir' => '/b /c'
}
}
], 'YAML::Tiny');
Я специально искал, чтобы получить значение для ключа директории под CLUSTER1. я беру CLUSTER1 из переменной окружения как
my $cluster=$ENV{SHARD}; #returns Cluster1
и попытаться retrive реж, как
print values %{$yaml->[0]->{Cluster1}{'dir'}};
Но это говорит
Can't use string ("/b /c") as a HASH ref while "strict refs" in use
Если я пытаюсь
print values %{$yaml->[0]->{Cluster1}};
Это обороты
/mnt/uploads/var/pubyes/b /c
Что я здесь нажимаю здесь?
Спасибо.
Я нашел решение, но не уверен, что это лучший способ. 'мой% host_conf =% {$ YAML -> [0] -> {CLUSTER1}};' , а затем 'печать $ host_conf {реж};' дал мне то, что я хотел. Любое хорошее предложение приветствуется. – nohup