Yes, there is no difference and why should there be any? return exists because you might want to leave the subroutine in the middle instead of at the end or leave from more than one location in the subroutine. And it exists to make it explicit what value is returned, it makes the program easier to read and less errorprone. If you have Damian Conways book 'Perl Best Pratices' at hand, it gives an example why explicit returning is better style, in section 'Implicit Returns'