Если у меня есть массив perl со следующей структурой (Дата, Время, Пользователь), отсортированный по пользователю:
open my $fh, '<', $file;
while( <$fh> ) {
my @lines = split /\n/;
my ($user, $y, $m, $d, $time) = $lines[0] =~ /\A(\w);(\d+)\/(\d+)\/(\d+);(\d+:\d+:\d+.\d+)/; # Encapsulate values
push @evts, { user => $user, date => "$y/$m/$d", time => $time}; # Array loader
} # This was missing.
close($fh);
my @by_usr = sort { $a->{user} cmp $b->{user} } @evts;
Как я могу удалить дубликат записи из него, если он имеет точно такое же время?
$VAR1 = {
'time' => '08:08:36.120',
'date' => '2018/08/06',
'user' => 'USER1'
};
$VAR2 = {
'time' => '08:08:36.120',
'date' => '2018/08/06',
'user' => 'USER1'
};
...(and more)
Я пробовал использовать уникальную функцию, но она не работает:
sub uniq {
my %seen;
grep !$seen{$_}++, @_;
}
my @unique_events = uniq (@by_usr);
Я доступен для любых разъяснений.