As I said, I would probably not do that, but if you're really happy that your programs are working correctly and just want to get rid of the warnings in your log files, then you could silence the warnings (in the smallest possible lexical scope):
{
no warning 'uninitialized',
@tmparray = sort { -M "$b" <=> -M "$a" } (@tmparray);
}
| [reply] [d/l] |