Непонятно, хотите ли вы / нужно использовать список. Если посмотреть на ваши данные, то, возможно, вы захотите использовать кнопку ha sh, указанную пользователем, указывающую на список пользовательских значений. Примерно так:
#!/usr/bin/perl
use warnings;
use strict;
my %test = (
"user1" => ["user1val1", "user1val2"],
"user2" => ["user2val1", "user2val2", "user2val3"],
"user3" => ["user3val1"],
);
foreach my $user (sort keys %test) {
print("$user:\n");
foreach my $user_value (sort @{$test{$user}}) {
print " $user_value\n"
}
}
, который выдаст следующее:
$ ./test.pl
user1:
user1val1
user1val2
user2:
user2val1
user2val2
user2val3
user3:
user3val1
Обратите внимание, что список пользователей является массивом, а не массивом. Лично я бы использовал га sh ref, как это:
#!/usr/bin/perl
use warnings;
use strict;
my $test = {
user1 => [ qw(user1val1 user1val2) ],
user2 => [ qw(user2val1 user2val2 user2val3)],
user3 => [ qw(user3val1)],
};
foreach my $user (sort keys %{$test}) {
print("$user:\n");
foreach my $user_value (sort @{$test->{$user}}) {
print " $user_value\n"
}
}