what makes Perl Perl?
In no particular order:
  1. Perl is context-based, or context-sensitive, or it decides what to do on code depending on in what context I expect my code to be treated (well, in the set of contexts Perl understands)
  2. Perl allows me to code in the *first way* that comes to mind to solve a problem, yet allows me later to improve the solution in *another way*.
  3. Perl makes it easy for me to visually distinguish variable types and interpolate them in string. This is one of things that made me fell in love in my early Perl days.
  4. Perl allows me to have as many namespaces as I like (or need) and arrange them in a nested fashion. I can have them in one file, or in their own files. (I just can't stand to say CGI_Application_Plugin_Authentication_Driver_DBI).
  5. Memory management. Well, this one was actually less relevant for me until I know (by literature) the pain in manually allocating and deallocating memory. So my praise to those who implement Perl in C but can stand the pain :-) (They can, can't they?)
  6. Garbage collection, see also note about MM. I don't care whether it's implemented with reference counting or mark & sweep, or other techniques, as long as Perl provides GC.
  7. CPAN, enough said :-)
  8. Unimitable Regular expression
  9. Optional parentheses, semicolons, and commas as long as they're not required
  10. I love one-liners
  11. Optional return in subs (TheDamian advices againsts it (PBP 9.11), though.)
  12. POD!
  13. Free-form syntax structure
  14. Short-circuit in logical operators
  15. (I don't know how to name this) EXPR if STATEMENT and other statement modifiers friends (Updated per blazar below)
  16. Closure, anyone?
  17. Arbitrary (bare or named) block usage
  18. Nested scoping

(Well, I can go on but that's what I can think of now. I could add TimToady's onion speaks but I'm afraid it's too much personal)

If Perl 6 preserves those characteristics, there's no reason to say Perl 6 is not Perl despite the change on the syntax. For example, I don't mind to write @array[1] instead of $array[1]. It's still Perl. And of course I can't mind to write:

given ($some) { when 'body' { 'has to fight' } when 'thing' { 'has to give' } when 'day' { 'they will know the truth } when 'where' { 'in a very near place to their mind' } when 'time' { 'can only tell' } default { 'yes, there is always a space for default' } }
In the mean time, the only thing I can do now is stay with Perl (5) until the day when we do have that better Perl than Perl 5. In the future, we won't call it Perl 6 anymore, just Perl.

Update: now that I remember more, I added number 13 onward.

Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!

In reply to Re^3: What's wrong with Perl 6? by naikonta
in thread What's wrong with Perl 6? by duff

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, 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, 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.