I've had a few problems getting the gps-maintain.pl script working on FreeBSD with perl 5.8.5. Firstly no matter what arguments you would supply it would always return the usage information with no errors.
To resolve this I had to remove line 178:
'h|?|help' => \&usage(),
The second problem is if you run maintenance for removal of old triplets, ie. /usr/local/bin/gps-maintain.pl -delete -age
It will ignore the age and remove all triplets. To fix this problem I've added the following on line 236:
$sql_clause = " WHERE uts < $uts";