На спане есть модуль Филипа BooK Брухата для работы с репозиторием гита из программы на перле — Git::Repository.
Модуль предоставляет простой интерфейс для работы с гитом:
use Git::Repository;
my $repo = new Git::Repository(work_tree => '../myproj');
my @log = $repo->run(log => '-v');
Хотя необходимости знать команды и ключи гита при работе с Git::Repository не избежать, наверняка использование модуля окажется несколько более удобным, чем «ручное» создание в программе строки шела и исполнение ее в обратных кавычках.