in reply to Time::Piece, localtime -- ambiguous, parentheses

This is one of the cases where MO::Deparse can help, by showing how perl interpretes your code:

perl -MO=Deparse -le 'use Time::Piece; $x = localtime; $y = localtime +- $x; print $y;' BEGIN { $/ = "\n"; $\ = "\n"; } use Time::Piece; $x = main::localtime(); $y = main::localtime(-$x); print $y; -e syntax OK
localtime - $x is actually interpreted as localtime(-$x)