Turn that around and ask what thing can only be done one way (if at all) in some languages, but one or more ways in Perl. Classes/objects come to mind immediately. Functional programming is another.
For other things, while there may not be only one way to do it in other languages, Perl offers many more options. For that, loops and loop control comes to mind, particularly postfix modifiers and next, last, map, grep, etc. All the array modifiers might be in that camp, too.
In a more abstract sense, subroutine argument passing and argument type validation is something that gets done lots of different ways in Perl, where in some other languages that is never even a question the programmer has to consider.
Some of these are exactly the kinds of things that Perl 6 is trying to define in a more standard way.
-xdg
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
| [reply] [d/l] [select] |
Objects was the main area I was thinking of based on some recent experience. I think many languages that support OO have just one way to do it, but with Perl there is an amazing array of choices. You can store your object data various ways, handle inheritance various ways, and now you can even build them inside-out. :)
But you're correct that I'm waving my hands a bit there. I spend most of my coding time with Perl, so it's been a while since I played with Java, C++, or others. | [reply] |
I think many languages that support OO have just one way to do it, but with Perl there is an amazing array of choices.
Well there are other languages that have a flexible approach to OO. Lisp and Ruby both spring to mind.
The other thing is that with Perl's OO a lot of the TIMTOWTDI comes from there not being one 'good' way of doing it. This hurts rather than helps Perl's OO system because the various different ways of doing it don't always play well together.
| [reply] |