in reply to One sub routine call works a similar one does not.

You are using prototypes without understanding how/what they are. Please read `perldoc perlsub'.
perl -le"sub NOARGS(){q,NONE,};print NOARGS();eval q{print NOARGS(1);} +;print$@"

____________________________________________________
** The Third rule of perl club is a statement of fact: pod is sexy.