Это не совсем ваш вопрос, но ... если вы на самом деле строите структуру данных таким образом, вы можете рассмотреть более чистый "буквальный" синтаксис:
#!/usr/bin/perl
use strict;
use warnings;
my %VAR = (
SCALAR => 'test scalar',
ARRAY => [
'test array',
],
HASH => {
NAME => [
'test hash array 1',
'test hash array 2',
{
SOMEHASH => 'test hash array hash 1',
ANOTHERHASH => 'test hash array hash 2',
},
],
},
);
Основные дваПричины читабельности и ошибки авививификации .Это не неверный perl , но это может привести к трудным для отладки проблемам, таким как случайный ввод:
$VAR{HASH}{NAME}[1] = "test hash array 1";
$VAR{HASH}{NAME}[2] = "test hash array 2";
$VAR{HASH}{NAME}[2] = "test hash array 3";
$VAR{HASH}{NAME}[4] = "test hash array 4";
вместо
$VAR{HASH}{NAME}[1] = "test hash array 1";
$VAR{HASH}{NAME}[2] = "test hash array 2";
$VAR{HASH}{NAME}[3] = "test hash array 3";
$VAR{HASH}{NAME}[4] = "test hash array 4";
, Который не может быть проблемой, если вы используете
$VAR{HASH}{NAME} = [
undef,
'test hash array 1',
'test hash array 2',
'test hash array 3',
'test hash array 4',
];