You might have 1.26 installed somewhere, but I believe Perl is finding and using an older version. The longmess_real and shortmess_real subs were purged a few years ago, in the 1.1x series IIRC.
Basically the way they were defined/used was that the (long|short)mess_real functions were defined inside Carp/Heavy.pm, and were called from Carp.pm itself. In recent versions Carp/Heavy.pm is not much more than an empty file, and Carp.pm doesn't call (long|short)mess_real at all.
So what I'm assuming is that Perl is finding an old version of Carp.pm (which calls longmess_real) but a new version of Carp/Heavy.pm (which does not define longmess_real).
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
|