perl のサブルーチンって、C の関数って解釈でいいんでしょうか?

それと、サブルーチンの宣言と内容は使用するプログラム内で、
サブルーチン使用箇所より上の行なら構わないんですか?