Re-using
load was not intentional, I was just looking for a name that made that line read relatively nicely, and I was in a hurry because I was late for work.
As for the shortening approach, putting the package name in a variable works reasonably well. Putting the package name in a constant somewhat works. Both will work with the direct syntax, but not the indirect, my differing judgements on them are that people who don't understand the magic are (at a guess) more likely to accept the syntax error from the variable than from the constant. That is:
my $short = 'Very::Long::Module';
use constant Short => 'Very::Long::Module';
# Later the following work:
$short->new(@args);
Short->new(@args);
# The following do not:
new $short(@args); # I'm guessing unsurprising?
new Short(@args); # Possibly puzzling?
It would, I guess, be possible to use source filtering to both set a constant and to rewrite indirect method calls. I wouldn't trust it too much though...