Matt Follett

If You Like X, You Might Like Perl

Objective-C - You’d probably like Moose’s concept of roles if you like categories.  Roles also provide the ability to require methods exist on classes so you could use them for interfaces too, but when you consume a role you can’t guarantee it won’t add functionality.

Clojure - If you were willing to play with Perl 6 you’d probably like the many of its lazy aspects.  The common example being binding an infinitely long fib sequence to a list (my @fib := 0,1,*+*…* ).  Perl 6 also supports multi-method dispatching and pattern matching.  I don’t know about Clojure’s pattern matching abilities, but I do know that Perl 6’s is weaker than Erlang’s, so be aware of that.

If you don’t want to try Perl 6 you should look at the Higher Order Perl book.  It focuses on functional Perl and steals heavily from Lisp.  In fact, the author states very early on that of the 7 things that make Lisp different, Perl has 6.  It is available free online or from a book store.  The author is currently boycotting Amazon though, so while they sell it you may want to buy from someone else. 

Ruby - I haven’t gotten around to learning Ruby.  For what it’s worth, there are a lot of people I know that like both Ruby and Perl so I have to assume there are some good similarities.  If you are looking for method_missing it is called autoload.  Besides that, Moose::Exporter is great for making keywords for DSLs.  You can use Perl 5’s prototypes, but that gets a little more complicated.  You can also use Devel::Declare if you just want to take the parser over altogether which, of course, is gets more complicated.

Feel free to add more in the comments or tell me where I’m wrong, I’ll update the body of the post as the conversation goes along.