On Mon, 21 Jan 2008, Eric Lease Morgan wrote: > I just got finished looking over some of the stuff related to Perl6, > and now my brain hurts. :-( Just what will I be able to do better > with this (completely) new version? Run faster? Jump higher? It might > be cheaper for me to buy a pair of Keds. Well, the goal is to make it easier to do things that people typically have to do. There's a new bracket to replace qw: @array = qw/a b c d/; becomes: @array = <a b c d>; But we also get: @array = << $x $y $z >>; which will interpolate the variables (and split them on spaces, so the resultant array might have more than 3 items in it) We can also interpolate within strings using { ... }, avoiding the need to do @{[ ... ]} : print "x + y = { $x + $y }"; There's also a real switch statement (given / when / default). Arguments to subroutines (@_) by default are now readonly (but this can be overwritten with prototypes). You can also do multi-dispatch with subroutines (ie, have a different subroutine called depending on what parameters are passed in) ... and named parameters, so you don't have to remember what order the 14 arguments are ... or have to pass everything as a hash or hashref. (there's a whole lot of changes to subroutines, which if I understand correctly, will force many errors to be detected at parsing, rather than run time) there's also a '...' operator, which can be used as a marker that the code isn't complete (and will generate appropriate errors if you reach that block of code) .. Now, there will be some issues w/ bringing over perl5 ... the concatination operator (.) is now the dereference operator (->), and concatination is now ~ . The ternary operator ( $x ? $y : $z ) is now ( $x ?? $y !! $z ). And there's enough other changes ... it'll be like trying to speak American English in the UK ... close, but not quite right. And there's a whole lot of new features that I don't know if I'll ever use ... but there's also stuff in perl5 that I don't use. (eg, 'format' and 'write', even though I've also done Fortran programming) I'm planning on taking it slow ... I'm not going to instantly convert over my existing code ... especially not the main library I work on, which is multiple thousands of lines. ----- Joe Hourcle