Should I predeclare the subroutines that I am using in my perl scripts? If so, what is the correct method to do so? What if the sub is expecting a parameter (or multiple parameters) to be passed to it?

Predeclaring the subs is almost never needed and the majority of the Perl community do not do it. It's considered by most to be "Best Practice" to not predeclare. The only time it's "needed" is when you want to call your sub like a Perl built-in command i.e., without using the parens or sigil such as when you want to write your own version of one of the built-in's and have it override the built-in.

I didn't think it was necessary to pre-declare my subs, but I was seeing "called too early to check prototype" warning messages in Eclipse. Pre-declaring my subs seemed to be the best way to deal with the message.