use Carp (); sub log_error { goto(&Carp::carp) if pop(@_) >= THRESHOLD; }