in reply to problem with do and file existence.

I'm by no means sure about whay you're really asking -but that may just be me-. Why don't you put the unless ($return = do $file) { # etc code inside the block of the second if clause?

Or else, why don't you use some alternate flow control construct? For example:

for ($file) { # for aliasing too last unless -e; unless (my ret=do $_) { # ... } }
or something like that;

But seriously, you may consider making that file into a proper module...