The $diff part works but not the addition of $t, how do I add that time to it? Obviously I need to convert it to something Time::Piece understands.
You cannot add a timestamp to another timestamp, that makes no logical sense. I'll therefore assume that what you have in this line:
my(@times) = ("00:05:21","00:08:05","00:10:33");
are not timestamps but durations. Therefore all you need to do is to convert these durations into seconds which you can then add to a Time::Piece object. You can either parse this yourself or else use something like Time::Duration::Parse.
#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
use Time::Seconds;
my @durations = (qw/00:05:21 00:08:05 00:10:33/);
my $start = localtime;
for my $d (@durations) {
print "$start plus $d = ";
my ($hh, $mm, $ss) = split /:/, $d;
my $t = $start + $hh * ONE_HOUR + $mm * ONE_MINUTE + $ss;
print "$t\n";
}