Your trouble is double-headed. There is no automatic conversion of the “%H:%M:%S” you’re using to objects. And you’re using times that are free of any dates (and timezones) so even if they were objects, the convention would turn your times into dates based on the zero epoch, like so: Thu Jan 1 00:05:21 1970.
For this to work and make sense you will have to add date information to your @times. If you can’t you might be able to find a heuristic to add the date based on the limits of how far it can be from “now.” But that sounds like a horrible approach.
If you can get the dates, it’s easy to turn them into Time::Piece objects and then do your math on them.
my $time = Time::Piece->strptime("Tue Aug 9 15:39:01 GMT 2022",
"%a %b %e %H:%M:%S %Z %Y");