Установка Список:: MoreUtils от CPAN
Тогда в Вашем коде:
use strict;
use warnings;
use List::MoreUtils qw(uniq);
my @dup_list = qw(1 1 1 2 3 4 4);
my @uniq_list = uniq(@dup_list);
Используйте алгоритм Прима, когда у вас есть граф с большим количеством ребер.
Для граф с V вершинами E ребер, алгоритм Краскала работает за O (E log V) времени, а алгоритм Прима может работать за O (E + V log V) амортизированное время, если вы используете кучу Фибоначчи .
Алгоритм Прима значительно быстрее в пределе, когда у вас действительно плотный граф с гораздо большим количеством ребер, чем вершин.
Kruskal может иметь лучшую производительность, если ребра могут быть отсортированы за линейное время или уже отсортированы.
Прим лучше, если количество ребер до вершин велико.