Да, просто используйте ссылки на массивы. Использование JSON в качестве выходного формата для иллюстрации вашего примера:
use strict;
use warnings;
use JSON;
my @agenda = (
'Monday',
['Tuesday', 'Lunch'],
'Wednesday',
'Thursday',
['Friday', 'Lunch', 'Dinner'],
);
print JSON->new->pretty->encode(\@agenda);
Выход:
$ perl dummy.pl
[
"Monday",
[
"Tuesday",
"Lunch"
],
"Wednesday",
"Thursday",
[
"Friday",
"Lunch",
"Dinner"
]
]
РЕДАКТИРОВАТЬ Лично я бы вместо этого использовал список ссылок на хэш, т.е.
my @agenda = (
{
day => 'Monday',
events => [],
},
...
{
day => 'Friday',
events => ['Lunch', 'Dinner'],
},
...
);
foreach my $entry (@agenda) {
my $day = $entry->{day};
my $events = $entry->{events};
print $day . ": " . join(" ", @{ $events }) . "\n";
}
или даже используйте хеш-ссылку для events
.