The difference, if any, depends on the language. This being Perl you can use the terms as you wish. Personally I refer to built-ins as functions, since they are referred as that in perlfunc, and user written named blocks of code as subroutines, since they begin with 'sub'. What do you understand the difference to be?