サブルーチン
あるサブルーチンfの定義中でf自身を再度呼び出すことを再帰呼び出し(さいきよびだし、recursive function call)という。再帰呼び出しを使うと、ある処理で得られた値に対しさらに同じ処理を何度も繰り返すような場合に簡潔な記述にすることができる。たとえば階乗の計算をするために使ったり、ファイルシステムのような木構造の探索に使ったり、オセロソフト・チェスソフト・将棋ソフト・囲碁ソフトなどの「先読み」に使ったりできる。
なお、一般的なコンピュータおよびプログラミング言語では、サブルーチン呼び出しの際はコールスタックに引数やローカル変数などの領域が確保されるが、パーソナルコンピュータのような比較的リソースに余裕のある環境であっても、このコールスタックの容量は既定でスレッドごとに数MiB程度に設定されており、サブルーチンの呼び出し階層が深すぎるとスタックオーバーフローを引き起こす場合がある。特に再帰呼び出しは呼び出し階層が深くなりがちで、再帰回数が多すぎるとスタックオーバーフローを引き起こしやすい。
Perlでは、ユーザー定義のものはサブルーチンであるが、引数を渡すことができ、値を返すこともできる。サブルーチン内からは、渡された引数には特殊変数からアクセスし、値を返すにはreturn文を使う。