Thanks for trying that out. Deparse is a good idea, I get the same results as you except for case two, where my Deparse says
say sort('get_keys' ());
say((sort get_keys ()));
Interestingly, feeding my Deparse output back to perl leads to a syntax error. Your version seems to indicate what perl is doing here. Trying to sort the empty list () with the compare-function get_keys, hence the empty return.
Code written by Hofmator and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.