I've been doing a fair bit of programming in IDL (Interactive Data Lanaguage) lately ... and I'd have to say:
- Mutable arrays (ie, can change the size as needed)
- Empty arrays (no elements, not 'filled with 0s'
- A concept of 'null', without having to fake it
- The ability to differentiate between a scalar and a array w/ 1 element
- Hashes
- Lists (in the sense that a perl 'array' can have a mixture of scalar types)
- Lazy typing (or at least, lack of strict typing)
- map
- XPath support (um ... goes that count as CPAN?)
- Namespaces / Packages
- Overloading functions (okay, this isn't a per say, but I can accomplish it by looking at @_ and wantarray ... IDL has both 'procedures' and 'functions', which return null, or one item (scalar or array)
Maybe I've become inflexible after years of Perl programming, and the limitations aren't as bad as I think. (and I admit, IDL isn't intended for what I'm doing -- trying to write SOAP clients, whereas IDL is indended for heavy math work ... think Fortran with matrices)
So far, the only thing I've been able to bring into IDL from Perl is the concept of a mutable array (ie, a 'stack', where you can pop/push/shift/unshift), by using an object)