in reply to Functions Signatures

You can always declare subs:
sub Hello;

It doesn't show what kind of arguments it expects, because the definition of the sub doesn't see so either. You could use prototypes, but be aware of the results. Prototypes aren't as useful as you may think. If you use prototypes, write:

sub Hello ($);

but then you have to repeat that prototype when defining the function:

sub Hello ($) { my ($text) = @_; print $text; }