Можно сделать что-то вроде этого, как продемонстрировано в perlfaq4:
sub uniq {
my %seen;
grep !$seen{$_}++, @_;
}
my @array = qw(one two three two three);
my @filtered = uniq(@array);
print "@filtered\n";
Выводы:
one two three
Если Вы хотите использовать модуль, попробуйте uniq
функция от List::MoreUtils
Рассматривали ли вы StatSVN
? Со своего сайта:
StatSVN получает информацию из Репозиторий Subversion и генерирует различные таблицы и диаграммы с описанием разработка проекта
Он включает отчеты для таких вещей, как:
Еще одно заслуживающее внимания - это svnplot
, который считывает статистику по репозиторию SVN в базу данных SQLite для анализа. Он сам по себе генерирует различную статистику, но также позволяет делать пользовательские запросы к базе данных.
Я думаю, что это очень интересный проект, у которого вы могли бы многому научиться. Вот небольшой материал для чтения по теме управления памятью. В нем рассматриваются некоторые основы управления памятью, приводится простая реализация malloc, а затем затрагивается пара более сложных тем.
Кроме того, поскольку вы упомянули, что хотите создать диспетчер памяти, который полезен для отладки, вы можете прочитать этот документ от разработчиков Memcheck / Valgrind (замечательный отладчик памяти для Linux). В нем подробно описано, как они отслеживают все метаданные (независимо от того, определен ли конкретный байт, инициализирован и т.д.) в memchck. Это немного подробно, но это хорошее чтение о том, как сделать масштабируемую и эффективную проверку динамической памяти.
Вы можете выгрузить данные журнала фиксации в XML-файл, а затем обработать его с помощью XSLT для создания отчета:
svn log --XML -v -g http://example.com/repo > commit-log.xml