Thanks for this highly useful thread.

I'd just like to point out that Perl 6 addresses almost every one of these dislikes (and even a few of clintp's favorite things):

The $#var syntax
Gone in Perl 6. It becomes @var.end or @var.last (probably the former, though I used the latter in E4).
Ranks right up there with $[
Gone in Perl 6. Replaced by an overloaded FETCH method on individual (or classes of) array-like objects.
no commas are allowed after the filehandle
As Dominus explained, using the comma isn't really a viable option. But whitespace as the syntactic marker for indirect objects probably wasn't the best choice either, in hindsight. Hence the use of the colon for that role in Perl 6.
$/, $\, $|, $", and $,
Gone in Perl 6. Replaced by methods on individual filehandles.
open FH, $file
Gone in Perl 6. Dominus gets his wish; it becomes $fh = open $file.
Implicit conversion of references to strings.
(Probably) gone in Perl 6. You'll need to explicitly stringify (using unary _).
v-strings
I don't know if Larry has considered their disposition yet.
pseudohashes
Gone in Perl 6. And going in Perl 5, for that matter.
$ used on single elements of hashes and arrays
Gone in Perl 6. Perl 6 variables never change sigils.
<> globbing
Gone in Perl 6. Use glob.
$;
(Probably) gone in Perl 6. Though the functionality might remain (as a per-hash or per-class method).
Symbolic references
Staying in Perl 6.
Perl's laissez faire approach to OO.
Staying in Perl 6. But being augmented by a second, B&D, OO mechanism.

BTW, those who are complaining are, for the most part, neither grinding axes nor bondage freaks. They are generally people with large commercial OO production systems to build, who would prefer not to have to jump through so many hoops to get compile-time checking, declarative attributes, pre- and post-conditions, strong encapsulation, etc. That is, they genuinely need all those valuable, scalable OO tools that Perl 5's laissez faire approach to OO trades off.

Punctuation.
Staying in Perl 6. But being simplified (e.g. sigils) and rationalized (e.g. fewer global punctuation vars).
Built-in networking and IPC functions
Staying in Perl 6. But becoming automagically loaded when used rather than bloating the core. (Hey, you want to be able to run perl on your Palm Pilot, don't you? ;-)
eval $string
Staying in Perl 6.
Globs
Gone in Perl 6. Every symbol has its own entry in some symbol table.
package variables.
Staying in Perl 6. And augmented by a third storage type: truly global variables.
local
Staying in Perl 6. Though the name isn't, since it just confuses people.
Punctuation variable names.
Staying in Perl 6. Though there will be fewer of them, and they'll be lexicals, not globals.
The entire approach to sockets in perl
I don't know Larry's thinking on this as regards Perl 6, except that the socket functions will also be autoloaded on demand, rather than mooching around the core. The interface certainly could do with some additional Perlification though...and some documenting.
chop
Very probably gone in Perl 6.
chomp
Possibly gone (as an independent function) in Perl 6. But Yuckfoo's wish is certainly granted: filehandles will be able to autochomp.
scalar @var
Evolving in Perl 6. Only returns the count in numerical contexts (but use of explicit @var.length encouraged instead). In non-specific scalar contexts, returns a reference to the array.

In reply to Perl 6 will make amends (was:Perl's Bad Ideas) by TheDamian
in thread Perl's Bad Ideas by japhy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.