Если вы просто хотите проверить структуру, попробуйте Data :: Validate :: Struct .
Вам необходимо определить справочную структуру данных для сравнения с фактической структурой данных, которая может быть любого уровня, любой комбинации вложенных хешей / массивов.
Здесь важно отметить, что этот модуль проверяет тип данных, а не фактические данные.
Ex:
my $exp = {
'body' => {
'results' => [
{
'template' => [
{
'origin' => 'word',
'name' => 'word',
'id' => 'int',
'attributes' => [
{
'value' => 'number',
'key' => 'word'
},
{
'value' => 'text' ,
'key' => 'word'
}
],
'hostname' => 'hostname',
}
]
}
]
}
};
, а затем
my $v = new_ok('Data::Validate::Struct', [ $exp ]);
ok($v->validate($act), 'validate an exp against an act' . $v->errstr());
будет проверять структуру $act
против $exp
Попробуйте взглянуть на Тесты на модуле, я нашел его очень полезным.