subroutine/function/procedure are (in Perl) all just the same thing. Because the thing is introduced with the keyword sub
, the usual term is subroutine
. Methods are subroutines as well - in fact, code wise, there's no difference, it's just that they are invoked differently.
how far can i write complex modules without using OOP concepts
All the way. There's nothing you can do OO wise you cannot do with non-OO modules. It's just a different style of programming. Use whatever you prefer (this is Perl after all, you can make Perl bend to your wishes instead of the other way around). I've a slight preference of writing OO myself, but I prefer maintaining non-OO code, and vastly prefer documentation of non-OO code over OO code.