Slashdot Mirror


Perl 5.8.0 Released

twoshortplanks writes "The latest version of Perl has been released, with new features such as better Unicode support, a new threads implementation, new IO layer support, and a whole plethora of bundled modules - plus a wonderful collection of regression tests and new documentation. The release notes and links to mirrors for download are on dev.perl.org." This is not a release candidate, it's the real thing, representing over two years of work by patch pumpkin holder Jarkko Hietaniemi and his merry band. Hugo van der Sanden is the new pumpking for perl 5.10.

254 comments

  1. Re:Will it enforce readable code? by spottedkangaroo · · Score: 5, Insightful

    good coders can write readable code in any language. bad coders cannot. So just what are you saying?

    --
    Imagine if you weren't allowed to use roads because a bus company complained about your driving 3 times. --skunkpussy
  2. Excellent! Now I have something to do at work :) by Marx_Mrvelous · · Score: 1

    I assume that the source only is released so far. Time to start porting it to HPUX! I wonder if this will fix problems with Oraperl on HPUX 10.20... probably not.

    --

    Moderation: Put your hand inside the puppet head!
  3. Slashcode Updates by Anonymous Coward · · Score: 0, Offtopic

    Many of you have noticed that CmdrTaco has changed a few things in Slashcode this week. The three changes I've observed so far are:
    Karma displayed as an adjective
    Karma score determines posting limit
    Client IP addresses placed in readonly mode more easily
    None of these are earth-shattering, so I'm going to cover them as a group.

    Karma score determines posting limit:
    Taco reminds everyone in this (non-archived) post that:
    "KARMA DOES NOT MATTER". He goes on to prove this by making karma determine how many times you can post a day. Remember, you shouldn't use all caps, because caps is like being wrong. Here's a summary of how important karma actually is now, and while some of these details may be off, this reflects my best knowledge from reading Slashcode:
    Karma: (PPD is posts per day)
    26_50 : Post at 2, 25 PPD, Karma = Excellent
    12_25 : Post at 1, 10 PPD, Karma = Good
    1_12 : Post at 1, 10 PPD, Karma = Positive
    Zero : Post at 1, 10 PPD, Karma = Neutral
    -9_-1 : Post at 0, 2 PPD, Karma = Bad
    -24_-10: Post at -1, 2 PPD, Karma = Terrible

    Note that (as Taco points out) these are the default values in Slashcode atm; Slashdot itself may at any time be running with different values. Each IPID/SubnetId is allowed 10 AC posts per day, unless an IP is being 'abused', at which point things get more complicated. So the land of -1 trolling should be moving to threshold Zero, AC. Taco stated on IRC that the rate limiting change was made to prevent scripted crapflooding from -1 Accounts. I'd love to see a link to this crapflooding (I've never seen it) so if any of you have seen it, email me at operation_mongoose 'at' ziplip.com.

    Karma adjectives:
    Here's CmdrTaco's journal on the subject, and here's the non-archived discussion on the topic. Read it while you can, it will be deleted in two weeks. Taco states that he didn't just enable comments in his journal because he "didn't want people trolling his journal". Additionally, all the comments he made WRT to changes in the Karma system will be deleted. Make of this what you will.

    Client IP addresses placed in readonly mode more easily
    My details on this aren't very good, but as many have pointed out, the "readonly" error message seems to be popping up more often. The message is "You can't post to this page." and it appears when your IP address has been marked readonly. Basically, readonly mode means you're banned from posting anything, but you can still read the site. I think the only modification was one to the criteria for being placed in readonly mode, but I don't know exactly what the change is, only that pudge mentioned in IRC that he turned it up too high, and that now everything should be "Ok". If you've been placed in readonly mode, feel free to leave a comment and tell us what you did to get there. AFAIK, you can be placed in readonly mode for posting Offtopic comments as AC, or for posting a lot of comments that receive negative moderation as AC (ex: Windows is a pretty good O/S). That's just my experience; fill me in on yours.

    That's all for now,
    -s.

    1. Re:Slashcode Updates by Anonymous Coward · · Score: 0

      I'm confused... are you saying your email address is:

      operation_mongoose@ziplip.com ?

      I repeat:

      operation_mongoose@ziplip.com ?

      Just want to make sure. Thanks!

  4. Explanation of Pumpking by recursiv · · Score: 5, Informative

    patch pumpkin n. [Perl hackers] A notional token passed around among the members of a project. Possession of the patch pumpkin means one has the exclusive authority to make changes on the project's master source tree. The implicit assumption is that `pumpkin holder' status is temporary and rotates periodically among senior project members.
    This term comes from the Perl development community, but has been sighted elsewhere. It derives from a stuffed-toy pumpkin that was passed around at a development shop years ago as the access control for a shared backup-tape drive.

    --
    I used to bulls-eye womp-rats in my pants
    1. Re:Explanation of Pumpking by warp365 · · Score: 1

      Good explanation...seeing as I had only a guess as to what that meant. I was especially confused when I read the typo at the end of the original post, "...and his merry band. Hugo van der Sanden is the new pumpking...". I'd much rather be a pumpkin than a pump-king.

      --
      "People will then realize that anxiety and distress in life will lead to the lasting comfort in death."-Confucius
    2. Re:Explanation of Pumpking by Piers+Cawley · · Score: 2, Informative

      Um... 'Pumpking' isn't a typo. It's the standard perl hacker title for the holder of the Patch Pumpkin.

    3. Re:Explanation of Pumpking by warp365 · · Score: 1

      Well then...that explanation clarifies the title just as much as the original. Thank you for the correction. I guess my sarcasm has made me the chump-king on this one.

      --
      "People will then realize that anxiety and distress in life will lead to the lasting comfort in death."-Confucius
    4. Re:Explanation of Pumpking by Anonymous Coward · · Score: 0


      I thought that the pumpkin token originated at Netscape. Is this not the case?

  5. Re:Will it enforce readable code? by yatest5 · · Score: 2, Interesting

    or at least make it easier to write readable code...

    The fundamental point of perl is its a quick way to write one-off scripts to do quick repetitive jobs - therefore maintainable code is not necessary. I accept there are other times when it needs to be readable tho...

    --
    • Mod parent up! [a] by Anonymous Coward (Score:5) Thurs, June 31, @13:37
  6. Re:Will it enforce readable code? by lamp77 · · Score: 2, Interesting

    Nonsense.

    Would you say
    " quick way to write one-off scripts to do quick repetitive jobs"
    Accurately describes the slashdot application?

    I suppose it's only a 'real' language if you have to compile it? I'll never understand that mentality.

  7. finally by tps12 · · Score: 0, Troll

    Like most programmers, I use perl on a daily, if not hourly, basis. It is great for prototyping, proofs of concept, and the inevitable "glue" code. So I have been anticipating 5.8 for some time.

    It's great to hear that they finally fixed the problems with threading, and Unicode support was a long time coming, but I'm sure well worth the wait. It is a shame the Perl team wasn't able to add true OO support and exception handling to this release, but I guess it is just another reality of open source software that projects are steered according to the whims of the programmers and not to what the users actually want. I'll be switching to Python, and I urge others to do the same.

    --

    Karma: Good (despite my invention of the Karma: sig)
    1. Re:finally by sgtsanity · · Score: 1

      Heh, the programmers are the users, silly.

    2. Re:finally by mindstrm · · Score: 2

      Yeah. Everyone knows that most programmers in the world use perl.

      Why do you need to urge others to do the same? use the right tool for the right job.. it's that simple.

  8. Re:Will it enforce readable code? by yatest5 · · Score: 1

    I suppose it's only a 'real' language if you have to compile it

    I didn't say this.

    Would you say
    " quick way to write one-off scripts to do quick repetitive jobs"
    Accurately describes the slashdot application?


    No. I did say it was suited for other things. But the fundamental entire basis for the whole point of perl is (and I quote from my O'Reilly Perl book) 'Perl is desinged to assist the programmer with common tasks that are probably too heavy .... and yet too weird or short-lived to code in c'.

    --
    • Mod parent up! [a] by Anonymous Coward (Score:5) Thurs, June 31, @13:37
  9. Re:Will it enforce readable code? by lamp77 · · Score: 4, Insightful

    Feh.

    I think it's easy enough to write readable code in perl, the great thing is that you have the option of writing horribly unreadable code to do in 3 lines what it would otherwise take 10 to do.

  10. Time for Berl? by Isle · · Score: 1

    Perl gets more and more features it is not designed for, making it potentially more and more ugly if you use all of them.

    Maybe it is time to dump Perl and start designing Berl = the Beautyfull Extraction and Reporting Language ;-)

    1. Re:Time for Berl? by Jeppe+Salvesen · · Score: 4, Interesting

      It's been done. They are called Python and Ruby.

      Frankly, Ruby has a lot of promise. I've been toying with it, and it feels like a pretty good compromize between java and perl.

      --

      Stop the brainwash

    2. Re:Time for Berl? by kin_korn_karn · · Score: 1, Flamebait

      Ruby's a bloated joke. I don't want an object interface to literals.

    3. Re:Time for Berl? by kevin+lyda · · Score: 2

      funny, i find perl to be an excellent compromise between perl and java. but then i feel that way about any language and java. ok, maybe not cobol. maybe.

      --
      US Citizen living abroad? Register to vote!
    4. Re:Time for Berl? by Anonymous Coward · · Score: 0

      > Ruby's a bloated joke. I don't want an object interface to literals.

      From the release notes:

      Perl 5.8.0 is about twice the size of 5.6.1

    5. Re:Time for Berl? by Jeppe+Salvesen · · Score: 1

      If you don't want it, don't use it. You can do both functional and object oriented programming in Ruby.

      --

      Stop the brainwash

    6. Re:Time for Berl? by jdavidb · · Score: 4, Interesting

      At Yet Another Perl Conference this year there was a book auction to raise funds for Perl development. Tons and tons of O'Reilly, Manning, and other books, and not just Perl books. It was interesting to see where the interests lay. There were plenty of wisecracks and groans for Java, Python, and PHP books. (I picked up Learning Python for $10.) Interestingly enough, there was intense interest in the Ruby books, and no wisecracks. Went for a higher than average price, I believe.

    7. Re:Time for Berl? by Anonymous Coward · · Score: 0

      Ah, so you want a language that doubles in size with every stable version and takes an hour to build on an average machine?

    8. Re:Time for Berl? by Hornsby · · Score: 2

      > Ruby's a bloated joke. I don't want an object interface to literals

      I should feed troll posts such as above, but I can't resist. The entire gzipped ruby source code is 998k. That's small enough to fit on a floppy. Now how is that bloated?

      I've programmed in Perl for 4 years and Ruby for 1 year. Ruby has become the _only_ language I need to get the job done at work(writing data aquisition and analysis software at an environmental lab).

      Ruby's standard library is analogous to Perl's, and it's one-tenth the size. It's object system is extremely robust and mature. The fact that everything is a first-class object makes ruby great. It's consistent, and you're sitting here complaining about the fact that it does something right that almost all other Object Oriented languages do wrong! If you don't want to treat a literal like an object then don't, but don't confuse "well designed" with bloated.

      --
      A musician without the RIAA, is like a fish without a bicycle.
    9. Re:Time for Berl? by axxackall · · Score: 3, Informative
      Maybe it is time to dump Perl and start designing Berl = the Beautyfull Extraction and Reporting Language

      Done. It's called BRL: Beautiful Report Language

      • Beautiful: It is easy to write BRL code that is understandable and maintainable, appealing to a programmer's sense of aesthetics.
      • Report: BRL is particularly suitable for constructing output that is a mix of static and dynamic content, e.g. web pages, e-mail messages. Its greatest strength is constructing output from SQL databases, though it is useful for many other tasks.
      • Language: The full power of a general-purpose programming language is there, though you wouldn't know it from simple examples.
      It is based on Scheme, which makes the syntax extremely simple yet powerful.
      --

      Less is more !
    10. Re:Time for Berl? by chromatic · · Score: 1

      That's the size of the source code distribution, thanks to an increase in the number of modules in the core library and a tremendous growth in the test suite.

    11. Re:Time for Berl? by Anonymous Coward · · Score: 0

      Did you read what you posted? you find PERL to be an excellent compromise between PERL and java?

      WTF does that mean?

    12. Re:Time for Berl? by Anonymous Coward · · Score: 1, Interesting
      The fact that everything is a first-class object makes ruby great. ... don't confuse "well designed" with bloated.

      Minus the flamebait of the original poster, I think what he may have been getting at is that Ruby perhaps errs too much on the side of an "academically clean" language -- where a set of basic rules are followed strictly. Some would say to excess, for instance in Ruby, "if(0){print "yes"}else{print "no"}" prints "yes" -- that's counterintutive from the perspective of just about every other programming language. But, it follows Ruby's set of basic, strict rules. (Though I'd like to point out it can still be clean OO can get that behavior. Like in C++, the if() construct takes a boolean and objects can specify implicit conversion functions. So int can cleantly map to boolean... but I digress.)

      Perl, while complicated, maps more directly to the idea of human (err.. English) language with exceptions to the rules and exceptions to the exceptions -- but with everything behaving the way you'd implicitly except in a given context.

      Oh, and arguing about the size of the code-base is just silly.

    13. Re:Time for Berl? by mlinksva · · Score: 2

      I dig Ruby, but I don't see it as a compromise between Java and Perl. Not much like java at all really, unless all allegedly "OO" languages look alike to you. If I had to put Ruby "halfway" between two languages they'd be Perl and Smalltalk.

    14. Re:Time for Berl? by ekidder · · Score: 2
      I was there.. I remember when the python book was being sold.

      Someone: I thought python was an easy language. Why's the book so big?
      Auctioneer: Must be all the whitespace

  11. A programmer without a job... by Anonymous Coward · · Score: 0, Funny

    "A programmer without a job had a problem. "I know, I will learn perl," he said. The programmer now had two problems."

  12. Re:OMG there goes my health insurance by Anonymous Coward · · Score: 0

    How can that be off-topic (maybe moderators need to read the actual stories eh?) ? I thought it was funny, given that it's on the page that this story links to. The no warranty warning always makes me giggle (specially it's there when I log into Debian).

  13. pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 0

    Im still having problems installing 5.8 on macosx. JFYI. dynlib issues.

    Phwwttt..

    M Felzien

    1. Re:pumpkin pumpkin whos got the pumpkin by ellem · · Score: 1, Interesting

      Got FINK? There's the problem. You can try this it has worked for some.

      RESOLUTION:

      The following three commands will correct the above issue by removing
      the current Storable and replacing it with a recompiled version. These
      commands must be executed as the superuser. After these commands are
      executed the aforementioned issue will be resolved.

      mv /sw/lib/perl5/darwin/Storable.pm /tmp
      mv /sw/lib/perl5/darwin/auto/Storable /tmp
      fink rebuild storable-pm

      It IS first necessary to do the mv's, before the rebuild, since fink is
      a perl script that explicitly adds /sw/lib/perl5 to @INC, and exhibits
      the behavior mentioned above.

      You will need to execute the above commands for every XS module that
      is contained within /sw/lib/perl5.

      --
      This .sig is fake but accurate.
    2. Re:pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 5, Informative

      Hello,

      This is David Corbane the fink developer over at Apple.

      I just wanted to give this warning, since the post above seem to be a well constructed trolling.

      Fink is an apt-get (Debian) application for packagemanagement on Apple OS X platform. It works just like apt-get.

      The three lines given above would not solve any of the issues, rather this would launch your workpod into a highly unstable state, since perl is used extensively within OS X.

      Fink manages aplications outside the base installation of OS X and no third party package mangement should in any way bother with base OS X applications.

      If you try the above, you will not be able to run any sort of cron applications (which are run by default and most of which involve perl scripts).

      Also doing this removes some glue security bindings that are controlled by perl.

      Please be aware that fink is only used outside the base system of OS X and the first two lines of the code above are deceptive and highly dangerious.

      Please write me if you need any more info.

      dmcorbane@corp.NOSPAM.apple.com

    3. Re:pumpkin pumpkin whos got the pumpkin by yatest5 · · Score: 1

      This is David Corbane the fink developer over at Apple

      Dave, this is your boss. Get back to work!

      --
      • Mod parent up! [a] by Anonymous Coward (Score:5) Thurs, June 31, @13:37
    4. Re:pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 1, Funny

      Dave, this is your boss. Get back to work!

      Dave's Boss, This is your boss. Get back to work, both of you!

    5. Re:pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 0

      Dave's Boss, This is your boss. Get back to work, both of you!

      this is steve jobs please come out to play foo ball all 3 of u

    6. Re:pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 0

      this is steve jobs please come out to play foo ball all 3 of u

      This is God - all must repent - meet me at the coffee machine.

    7. Re:pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 0

      CRAP: dont do what the guy said, it jsut makes your OS X very unstable, I got msges like "CRON: Perl storage undefined" on my OS X 1U. comming to console.

    8. Re:pumpkin pumpkin whos got the pumpkin by babbage · · Score: 2
      Substantially the same advice as the one you object to was given out in a posting sent by Adam Foxson to the perl5-porters@perl.org, macosx@perl.org, and fink-devel@lists.sourceforge.net lists this morning. In this post, Foxson summarizes as follows (snipping drastically -- read the original for details):
      The release notes for perl 5.8.0 indicate:

      "Perl 5.8 is not binary compatible with any earlier Perl release, XS MODULES WILL HAVE TO BE RECOMPILED!"

      Mac OS X users that have fink installed may experience the following error when executing certain perl operations (see 'EXAMPLE').

      [snip]

      The error is caused by the following sequence of events:

      • 1 - a .bashrc (or other shell rc file) sources /sw/bin/init.[c]sh
      • 2 - init.[c]sh sets PERL5LIB to /sw/lib/perl5
      • 3 - /sw/lib/perl5 contains Storable (the only compiled perl module, included by default, to my knowledge), and possibly other XS modules. Since Storable is a compiled XS module that was compiled with a prior version of perl that is binary incompatible with perl 5.8.0 it will be necessary to recompile Storable (see 'RESOLUTION').

      Fink stable currently includes the following six XS modules. If any of these were installed prior to installing 5.8.0 you will likely experience the dyld issue.

      • - DBD::Mysql
      • - DBI
      • - Digest::MD5
      • - MacOSX::File
      • - Storable
      • - Term::ReadKey

      You will also experience the dyld issue if any other XS modules are contained within the /sw/lib/perl5 directory. That is, XS modules from fink unstable or another source.

      From there, the remedy suggested roughly matches that which Ellem posted earlier, and which you are objecting to now. In his .sig footer, Folson identifies himself as "CPAN Tester for Mac OS X", and the advice he gives sounds credible.

      If the advice summarized in these postings is unsound, do you have any counter suggestions that address the issues raised by Foxson's post? Or are those issues themselves phantoms? I didn't realize that Apple had a dedicated Fink developer, but seeing as that seems to be a part of your job description, a clarification of this matter would be very much appreciated -- and you might want to include the mailing lists mentioned above so that the users/developers will know what's going on "from the horse's mouth", so to speak.

      Thanks a lot.

    9. Re:pumpkin pumpkin whos got the pumpkin by Knightmare · · Score: 1

      If perl is used so extensively in OS X, mabey you guys should consider being the fix to the lack of funds the Perl Foundation is experiencing as noted in a previous slashdot article that I am too lazy to look up. It would be really cool in my oppinion if Apple donated some money to the projects that have made OS X what it is today.

      Just a suggestion.

    10. Re:pumpkin pumpkin whos got the pumpkin by babbage · · Score: 2

      That is a *wonderful* idea. If Apple is sitting on such a big slush fund as I've heard, surely they could afford to chip in a bit for the free software they're getting to take advantage of...

    11. Re:pumpkin pumpkin whos got the pumpkin by ellem · · Score: 2

      <i>"I just wanted to give this warning, since the post above seem to be a well constructed trolling."</i>

      Easy now slugger. I merely offered up what is going arounf the Mac OSX Perl mailing list. No need to get all nuts on me.

      It has been claimed to "fix" the Fink issue. Now Max Horn from FINK says "Thanks for the detailed reoprt. We are aware of this potential problem for anybody who installs a custom perl, however, I believe there is nothing we can currently do about this (besides posting instructions similar to your to our web page someplace)"

      The article is from Adam J. Foxon who says he's a CPAN tester for Mac OSX:

      So maybe you should take a look at the thread and yell at them.

      This is the thread title: perl 5.8.0 issue on Mac OS X w/ fink

      Go read it.

      --
      This .sig is fake but accurate.
    12. Re:pumpkin pumpkin whos got the pumpkin by Anonymous Coward · · Score: 0

      Please write me if you need any more info.

      dmcorbane@corp.NOSPAM.apple.com


      Hello?

      If an apple developer is dumb enough to do this, I'm glad I don't rely on them for software... (and maybe hardware, but that would be different people)

    13. Re:pumpkin pumpkin whos got the pumpkin by PghFox · · Score: 2, Informative
      David,

      Thank you for your post. First, I'd like to say that I hoping you are who you claim to be. The fact that you're posting as an AC, and that google doesn't know about you, and that you're not listed as a fink developer at the fink project member list, and that no reference of you exists at the fink-devel archive gives me pause. Appologies if my skepticism turns out to be unwarranted. For the sake of this response, I will assume that you are not trolling and are who you claim to be.

      That being the case, I'm afraid you've been misled by the comment that you initially responded to. That comment was posted by someone who extracted out a small section of a report that I sent to various mailing lists last night. The comment to which you responded has effectively deprived you of the relevant context surrounding the issue. My full report can be found at the archives for the three lists I sent it to:

      To summarize the report, there is a dyld issue of perl undefined symbols under Mac OS X, when fink is installed, and when the user has manually upgraded to perl 5.8.0. This issue effectively renders the new perl installation unusable, in addition to many things that depend on perl.

      This is caused by fink setting PERL5LIB to /sw/lib/perl5 which contains one or more compiled XS modules. Since perl 5.8.0 is not binary compatible with any prior perl release all XS modules will have to be recompiled in order to not experience the show-stopping dyld issue.

      At this moment in time there have been several replies. One was a reply from Max Horn, a senior developer at fink. And, another reply was a reply from Michael Schwern, quality assurance manager for perl. Both acknowledge this as an issue and further outline the cause of this as well as possible permanent solutions.

      The steps outlined in the 'RESOLUTION' section of the report are sane and well tested. They do indeed correct the issue that the report details, and should absolutely not cause any peripheral problems.

      I'd like to request that if you further reply, please also do so on one of the three lists mentioned above so we can keep everyone in the loop.

      Thank you!

      --
      --- Fox
    14. Re:pumpkin pumpkin whos got the pumpkin by bill_mcgonigle · · Score: 2

      If an apple developer is dumb enough to do this, I'm glad I don't rely on them for software... (and maybe hardware, but that would be different people)

      Right. I too prefer companies whose employees make no effort to get out into the development community, but will give me mediocre support for $50K.

      Party on, Dave.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  14. Thread Question by MikeD83 · · Score: 1

    "- New Threads Implementation: A new multithreading implementation called interpreter threads, or "ithreads" for short, is available, their use instead of the old "5.005 threads" is strongly encouraged. The major difference is that in ithreads any data sharing must be done explicitly."

    Does this mean when you use fork() you must define a variable as global? I didn't think it was possible to declare a variable as global other than a "$var = 0". Also, does any one know if after forking how would a child return a variable to the parent?

    1. Re:Thread Question by Anonymous Coward · · Score: 0
      fork() creates a whole new process. If Perl implements its threads correctly, each thread runs in the same process space and could share memory easily. This sounds as if Perl has some internal memory management that doesn't allow implicit or accidental access to another thread's variables.

      Of course, threading is really bollixed up under Linux, so if you go there you play with fire.

    2. Re:Thread Question by ndanger · · Score: 3, Informative

      Fork() is for creating a new process. The Perl 5.8.0 threads uses the threads pragma to spawn threads. But Perl doesn't share all data by default, so variables must be declared shareable via variable attributes( $variable : attribute). Artur Bergman wrote a good synopsis.

  15. Request by Anonymous Coward · · Score: 5, Insightful

    I learned perl using 5.0.0.5, or somesuch. I learned using version 2 of the Perl Book.

    It seems to be the case that the perl language has actually evolved a bit since 5. I am continually finding out about "new" features in Perl that i were not aware were there (invariably, the only ones that make a difference to me are the extentions to the Regexp system: there seems to be a whole class of (?X) operators that are not in my copy of the perl book).

    Is there anywhere that summarizes the various changes to perl since version 5? there are the perldoc perldelta documents (here is the perldelta document for 5.8.0). However, these are complete, technical changelogs, and cover everything from language changes to small inconsistency smoothings to changes to obscure library functions to bugfixes in internal perl functions. Moreover, they do an even poorer job of explaining the consequences to the coder of things like (?>) than the perldocs :) It seems it would be a useful community project if someone were to take these changes and compile them into a sorted by type document-- I.E., all grammar changes, then all regexp changes, then library functions, etc., with sample code where germane.

    Really, now that i think about it, i guess what i would like is a summary of what they've done to the regexps since version 5.0 :)

    If no such document exists, maybe someone can write one and post it on PerlMonks :)

    - super ugly ultraman

    1. Re:Request by asobala · · Score: 4, Informative

      Well, when Perl 6 is released (a while yet, I think) you'll find radical changes to the regexps. See Apocalypse 5 for more information.

    2. Re:Request by Anonymous Coward · · Score: 1, Insightful

      Well, that's the interesting part. A lot of the changes in the perl 5 regexps have the end result of moving toward perl 6. I mean, you can definitely see that there is a logical progression of ideas from the perl 5.6 and 5.8 RE extentions toward the perl 6 regexp system.

      The things that the 5.x (?X) "extentions" did have now become deeply integrated parts of the perl 6 regexp engine: named subpatterns ("rules"), embedded code assertions, and the "::" abort are the most important part of the perl 6 extentions, and they all had clear descendents in the things that have been added to perlre since 5.005...

      Now, if only i understood how to use them effectively.. :)

      P.S.: Please note that if you want to try to wrap your head around this perl6re beast, in addition to asobola's link it may be good if you looked here and here. (The first is a summary/reference of the apocalypse changes, the second is some neat sample code in which an elegant XML validator is created using perl6re)

      -- super ugly ultraman

    3. Re:Request by jcoy42 · · Score: 1

      I almost reached for a flounder to smack you with while yelling "RTFM" but choose not to.. :)

      Try running perldoc perl (or man perl if you are using *nix) and search for the keyword "delta".

      From the doc on my 5.6.1 (sorry, I have not upgraded yet):
      perldelta Perl changes since previous version
      perl5005delta Perl changes in version 5.005
      perl5004delta Perl changes in version 5.004

      It's all there, Larry isn't about to leave you out in the dark. Well, he would if he thought it was funny, but I don't think he does.

      --
      I knew I'd hate COBOL the moment I saw they'd used "perform" instead of "do".
      -- Larry Wall

      --
      Never trust an atom. They make up everything.
    4. Re:Request by maraist · · Score: 2

      Two things. First, the newer perl camel book contains just about everything you need to know, so you could just reread the appropriate sections of interest there.

      Secondly, and more importantly, the way I've managed migration is to simply reread the man-pages. If you've ever read the perl man pages, they're rather nice. Most importantly, you'll recognize a lot of material from previous reads. Thus for each new version, I simply skim certain man pages (like man perlre).

      Next, I've noticed in the past couple releases, there's a man perl5005delta, and now perl56delta and perl561delta.

      In terms of man pages for reg ex's, each feature stands out, and you'll quickly come to learn the (xx..) commands. There are definately a couple that stand out in terms of usefulness: (?=..), ?!, ?<=, ?<!, and possibly ?>. These involve look head and behind assertions (and their negatives). The last one is a non-backtracking forward expression.. Great for avoiding nearly infinite backuptracking issues.

      And, in case you don't find a good collection of info. I'll throw this change.. "our" is now the global equivalent of "my". It replaces "use vars qw($x $y $z);". I say this because I wan't as much perl code to do this as possible.

      --
      -Michael
    5. Re:Request by Stary · · Score: 1, Troll
      I almost reached for a flounder to smack you with while yelling "Read the post before you reply!" but chose not to.

      Quote from that post: "Is there anywhere that summarizes the various changes to perl since version 5? there are the perldoc perldelta documents (here is the perldelta document for 5.8.0 [perl.org]). However, these are complete, technical changelogs, and cover everything from language changes to small inconsistency smoothings to changes to obscure library functions to bugfixes in internal perl functions." (emphasis added)

      To which your incredibly clever answer was to look up perldelta, even explaining how to do it with perldoc (in a rather clumsy way; perldoc perldelta will do fine). Now: Since you seem to be such an amazingly clever person, could you actually come with some information that could actually help? Thanks.

      --
      Tomorrow will be cancelled due to lack of interest
    6. Re:Request by Craig+Shergold · · Score: 1
      perldoc perltoc is cool, too. Gives you the Table of Contents, explaining what's actually in all of the perldoc docs. And it's fun to say.

      "perldoc perltoc"
      "perldoc perltoc"
      "perldoc perltoc"
      mmmm.... yummy.

  16. Re:Will it enforce readable code? by Anonymous Coward · · Score: 3, Informative
    The fundamental point of perl is its a quick way to write one-off scripts to do quick repetitive jobs - therefore maintainable code is not necessary.
    ::Sigh:: yet another person with this misconception. Perl is not just a little language for one-off scripts. It can be used for real, big, major, mission-critical applications. It's used by Barclays Bank, the Scottish Land Registry and many more. It also powers Sweden's entire pension system. In addition, Hewlett Packard's "OpenSkies" system used by many European low-cost airlines like easyJet and RyanAir is written in Perl.

    Perl is real programming language, and as for the readability aspect: Perl doesn't hold your hand. It's perfectly possible to write clear code in Perl. If I was to show you one of my scripts I'm sure anyone with basic programming knowledge would be able to understand it.

  17. Some problems are features :-) by shoppa · · Score: 2
    From the announcement:
    Known Problems
    • Tied/Magical Array/Hash Elements Do Not Autovivify

    I never liked autovivified hash elements in the first place. It's such a pain in the butt to put a if (exists $hash{index}) before trying to access everything if I don't want autovivification. Don't take this as a slam against Perl, I love the language and the concepts, but there are a couple little nooks and crannies that ought to somehow be fixed. I say "somehow" because to do it with backwards compatiblity may be impossible.

    1. Re:Some problems are features :-) by gorilla · · Score: 3, Informative

      Autovivification on access is seen as a bad feature, and it's intended that in perl6, there will only be autovivification on write. In other words if($hash{'index'}{'index'}==2) won't autovivify, but $hash{'index'}{'index'}=2 will. This is one of the design goals behind perl6, to fix those things which need fixing, but can't in perl5 because of backwards compatibility.

  18. Re:Perl 5 is not a bad language, but... by Anonymous Coward · · Score: 0

    "and not one with loads of irritating whitespace"

    Lots of people make a big deal about whitespace in python, but frankly it really is a non-issue. Any decent python editor will manage the tabs for you properly, and you will marvel at the clean readable appearance of bracketless code. Get it a real try before you write this excellent language off will you?

  19. Re:Will it enforce readable code? by Anonymous Coward · · Score: 1, Interesting

    Good coders use "ugly" pointers that scares C++ coders away. Good coders use complex structures that might give Visual BASIC aestetic freaks goose bumps. Heck it's even better to know some assembly with it's ugly jmp and branches. So I agree with the PERL philosophy, it ain't pretty to look at but then again it works. If you want cute readable code where you spend 60% of the time writing comments because you never when you gonna get fired from the project and some other company/guy will take over who might not know advanced stuff or read code, then somehow that might explain why code is getting even more sloppy these days.

    I met a PIC chip coder last day... 16 instructions, things that work in less then 20k and that can be timed at the m.second, now that is beauty in code! It's when it works that the beauty is, not when you cut and paste cute lines of /* */ Don't forget, you write for the computer in the end.

  20. Cocoa bindings... by dowobeha · · Score: 2, Interesting

    Now if only Apple would get the Cocoa bindings for Perl cooked up, so I could back-end in Perl and GUI in Cocoa...

    --
    I am concerned about any program, any piece of hardware, any treaty, any law that treats me as a consumer, not a citizen
    1. Re:Cocoa bindings... by Piers+Cawley · · Score: 4, Informative
    2. Re:Cocoa bindings... by lunenburg · · Score: 2

      Pretty cool. I'm just waiting until Perl/Tk gets ported over to OS X natively, instead of needing an X server. That'll be nice. :-)

    3. Re:Cocoa bindings... by hobbs · · Score: 2

      Apple itself is working on the Tk port and has an 8.4 beta on native Aqua. Perl/Tk (which has been at Tk 8.0) will finally be able to move to Tk 8.4 with Perl 5.8 due to the improved unicode support and some other things. Nick Ing-Simmons has alread done some work on the Perl5.8/Tk8.4 module.

      It will be a nice update from 8.0. You will have more core widgets, full i18n support in Tk (including XIM/IME), many features enhancements to current widgets (auto-validating entries, text widget with built-in undo, compound buttons/labels, ...), and better native Windows LaF (Aqua support is also new for 8.4), among other things

    4. Re:Cocoa bindings... by pshangov · · Score: 1

      have you got any link about what the new stuff in Perl5.8/ Tk8.4 will be?

  21. Re:Excellent! Now I have something to do at work : by Piers+Cawley · · Score: 1

    Oraperl? Or do you mean DBI + DBD::Oracle. oraperl, sybperl and all those other monstrosities have been unsupported for ages.

  22. Re:Excellent! Now I have something to do at work : by Anonymous Coward · · Score: 3, Informative

    I'm no coward, but don't want to spend time creatying an account (and remembering it) right now.

    perl-5.8.0 is now completely 11.00 and 10.20 HP C-ANSI-C and GNU gcc safe. There are more 'README' pieces about Oracle in README.hpux and DBD-Oracle's README's have been extended, and probably will be even more in the near future.

    I've already made a pa-risc-2.0 gcc version prepared for Oracle available on https://www.beepz.com/personal/merijn for HP ITRC forum members, and I cannot promise, but a 10.20-pa-risc-1.1 version is planned for the near future.

    BTW, I seldom read this forum.

  23. Re:Yay! by davorg · · Score: 2, Informative
    This release actually came out a few days ago

    No. It was released today. You're thinking of the last Release Candidate which was released on Monday.

  24. Re:Will it enforce readable code? by dgym · · Score: 2, Interesting

    not true, here is a sample brainfuck program :

    hello world

    I would include it in this body but it fails the lameness filter for having too many 'junk' characters, but its a program.... ;)

    as you are not allowed comments and none of the operations are particularly obvious because of the lack of verbosity, its very hard to understand what it does even if you know brainfuck.

    it prints out 'Hello World' by the way.

    things are even worse when programming in machine code, because the commands' binary syntax is not very human readable, although at least you can put comments in machine code.

    In short, some languages are better than others for promoting code readability, but I think the exact opposite of your statement is true : you can write unreadable code in any language.

    I for one think Perl suffers from write-only tendancies, mainly due to the horrible mess that is called array access. Good clear types really help maintainability, and the last time I saw Perl's collection type(s) it was neither good nor clear.

    I was happy to move over to Python mainly based on the quality of its type system, not that this was the only strength. But I must confess to being fully able to produce unreadable bits of Python that could make some Perl fragments look like angels.

  25. Re:Will it enforce readable code? by Anonymous Coward · · Score: 1, Insightful

    Good coders use "ugly" pointers that scares C++ coders away.

    Yes, you'd never see

    Object *pointer=new Object("foo");
    pointer->Method1();
    pointer->Method2(1);
    delete(pointer);

    Oh, wait. Yes you do.

  26. Re:Try CONECTIVA LINUX - We've got already fresh p by Anonymous Coward · · Score: 0

    Say Goatse 5 times and you're illness would go away. Please do not post on /. for 3 days, if at the end of the 3rd day symptoms of paranoia and post 9/11 leandings appear, please destroy your workstation and try to buy a windows ME Pee Cee from K-Mark (use your offical Hick card).

  27. Re:Excellent! Now I have something to do at work : by Marx_Mrvelous · · Score: 2

    The monstrosities, of course. I've battled with them many times. We actually have a procedure now for both 11.0 and 10.20, butit took literally days upon days of fact-finding and experimentation to get it to work at all.

    --

    Moderation: Put your hand inside the puppet head!
  28. Re:Will it enforce readable code? by AndrewHowe · · Score: 1, Flamebait

    I use pointers in C++. What is scary about pointers?
    Why use a complex structure when a simple one will do?
    It's better to not branch at all, than to branch in assembly.
    What actual evidence do you have that code is getting more sloppy? Or are you just waving your hands around making general statements, with the subtext that no-one can code as well as you?

  29. Yummmmm.... by dowobeha · · Score: 1

    Mmmm, chocolate perls....

    Thanks for the link! :)

    --
    I am concerned about any program, any piece of hardware, any treaty, any law that treats me as a consumer, not a citizen
  30. Re:Will it enforce readable code? by jeffy124 · · Score: 1

    to describe "bad coders," i think the phrase you're looking for is "Code Monkey," sense #1 from the Jargon file: A person only capable of grinding out code, but unable to perform the higher-primate tasks of software architecture, analysis, and design. Mildly insulting. Often applied to the most junior people on a programming team.

    --
    The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
  31. Re:Excellent! Now I have something to do at work : by kin_korn_karn · · Score: 2

    Oraperl (capital O) is a reverse compatibility wrapper around DBI.. lots of people are brain-locked on it and don't even know about DBI.

    Yes, I know.

  32. Time to upgrade? by pemerson · · Score: 2
    How do you decide whether to upgrade or not?
    (rand() < 0.5) ? (print "Definitely yes\n") : (print "Outlook cloudy\n");
    1. Re:Time to upgrade? by Quixote · · Score: 2
      TMTOWTDI

      print ((rand()

      Let the contest begin... :-)

    2. Re:Time to upgrade? by Quixote · · Score: 2
      TMTOWTDI (excluding stupid HTML typos):

      print ((rand() < 0.5) ? "Definitely yes" : "Outlook cloudy"), "\n";

      Let the contest begin... :-)

    3. Re:Time to upgrade? by sab39 · · Score: 2

      rand() < 0.5 and print "Definitely yes\n" or print "Outlook cloudy\n";

    4. Re:Time to upgrade? by Piers+Cawley · · Score: 2, Funny
      If we're going to play perl golf...
      #!perl -l
      print rand<.5?"Definitely, yes":"Outlook cloudy"
      Or we could go for weird
      print for("Definitely, yes","Outlook cloudy")[rand 2]
    5. Re:Time to upgrade? by thrig · · Score: 2

      #!/usr/bin/perl
      rand($.) < 1 && ($line = $_) while <DATA>;
      print $line;
      __DATA__
      Definitely yes
      Outlook cloudy

    6. Re:Time to upgrade? by kill-1 · · Score: 1

      @a = ("Definitely yes\n", "Outlook cloudy\n");
      print $a[2*rand()];

    7. Re:Time to upgrade? by sab39 · · Score: 2

      Ooh, nice.

      Even better,
      print(("Definitely yes\n","Outlook cloudy\n")[2*rand])

    8. Re:Time to upgrade? by Anonymous Coward · · Score: 0
      (rand()

      Some languages prefer to emphazize the intent:
      import random ; print random.choice(["Definitely yes", "Outlook cloudy"])

    9. Re:Time to upgrade? by Anonymous Coward · · Score: 0
      Or better,
      (rand() < 0.5) ? (print "Definitely yes\n") : (print "Outlook cloudy\n");

      Some languages prefer to emphazize the intent:
      import random ; print random.choice( ["Definitely yes", "Outlook cloudy"] )

    10. Re:Time to upgrade? by thogard · · Score: 1

      So why import a module to do something that you could do with an index?

      If you do an strace on your version vs most of the other examples here, you will see why its wrong.
      1) its much slower (1/3 as many file opens)
      2) it uses much more memory
      3) is only more readable if you know what the random module does.

    11. Re:Time to upgrade? by kko · · Score: 1

      I'm upgrading to try the version of IPC::Open2 that comes with it ... 5.6.1's Open2 works great on Linux, but it doesn't work at all under OpenBSD 3.1 (either that or "I'm with stupid ^")... anybody else had this problem? (Why am I not asking this on perlmonks?)......

      --
      No, seriously, I just come here for the articles.
    12. Re:Time to upgrade? by Anonymous Coward · · Score: 0
      So why import a module to do something that you could do with an index?

      Huh? Because the function is here. That's what modules are for ; for giving me access to functions I don't need to rewrite. More importantly, take any of the Perl proposals here, and compare to MY version, how much work is needed when, in maintenance work, you want to add a third choice. That's exactly why the function is here.

      If you do an strace on your version vs most of the other examples here, you will see why its wrong.
      1) its much slower (1/3 as many file opens)

      And? First, it's set up time, which you pay only one time ; it's not like you open a file each time you use random.choice. Second, if you are so outrageously concerned about performance, it was completly stupid to use Perl, Ruby, Python in the first place... only assembly would do (one "int 0x80" call for sys_getpid or sys_gettimeofday for randomization, one call to sys_write(1,...) and you're done).

      2) it uses much more memory

      As previous, irrelevant. Unless you are coding for a machine with 1 KB RAM. And this case, you choose the wrong language anyway.

      3) is only more readable if you know what the random module does.

      Only a moron couldn't guess that "random" is the Python module related to random variable generators ; the name choice is rather self-explanory - in fact, I discovered this function when printing all the name of "random", and instantly understood what it did. But assuming you can't guess that, all you have to do is to run "pydoc random.choice", or better, hit your Emacs key combo that does automatically this for you for the call under the cursor and you get:

      Python Library Documentation: method choice in random

      choice(self, seq) method of random.Random instance
      Choose a random element from a non-empty sequence.

      In fact, by chance, this example sum up exactly what is wrong with Perl: you can do the same things in dozen of ways, all inferior in the real important things, maintenance, and readibility. Instead you can optimize speed and memory, in a context it's completly stupid to even think to consider it. In contrast, while you can do most of the dozen one-liners, Python as one superior,clean, way ; and that's what informed users will use.

  33. Re:Will it enforce readable code? by Anonymous Coward · · Score: 3, Funny

    My favorite quote on Perl:

    "A Perl script looks like an explosion in an ASCII factory"

    I know I saw it on /., but can't attribute it. Sorry.

  34. Re:Will it enforce readable code? by AndrewHowe · · Score: 2

    You don't need the () with delete...

  35. Re:Excellent! Now I have something to do at work : by Piers+Cawley · · Score: 1

    Can I suggest writing something that duplicates the oraperl interface using DBI and DBD::Oracle, and using that to run your scripts?

    It'd probably make your life easier. In the long run.

  36. Re:Will it enforce readable code? by Neil+Watson · · Score: 4, Insightful
    The fundamental point of perl is its a quick way to write one-off scripts to do quick repetitive jobs - therefore maintainable code is not necessary.

    I could not disagree more. I keep a copy of all interesting scripts I write. I often give them to friends or peers. In addition, I may not look at a saved script for some time in the future. Well written, documented code is key to being able to remember just what it was that you were doing and communictating these ideas effectively with others.

  37. Re:Will it enforce readable code? by Doppleganger · · Score: 1

    How about: a good coder can write readable code in any readable language?

    But I hardly think that trotting out languages that are difficult to read invalidates the statement you replied to. I could just as well say that it's impossible to write readable Russian, since I can't read Russian.

  38. Re:Will it enforce readable code? by Luke-Jr · · Score: 0

    Good idea... if only real languages are compiled then we can effectively declare English, Spanish, etc as non-languages :P

    --
    Luke-Jr
  39. Perl and Carp? by Anonymous Coward · · Score: 0

    - Safe Signals:
    in previous versions of Perl signals could corrupt Perl's internal state


    I was always a bit bummed that Carp was so unstable under mod_perl (I'd get seg faults every once in a while)... is this issue related to problems within Perl such as the above?

  40. Re:Excellent! Now I have something to do at work : by mpeppler · · Score: 1

    Nope - sybperl is still supported (although "sybperl" is just the collective name for the Sybase:: modules for perl 5)

  41. Perl Culture by Anonymous Coward · · Score: 0

    "This is not a release candidate, it's the real thing, representing over two years of work by patch pumpkin holder Jarkko Hietaniemi and his merry band. Hugo van der Sanden is the new pumpking [sic] for perl 5.10."

    Isn't it cute?

    1. Re:Perl Culture by vajcovec · · Score: 0

      Actually, pumpking is spelled correctly. That is a term used to describe the pumpkin holders for the latest stable and developement trees. They are the pumpkings.

  42. Re:Will it enforce readable code? by larry+bagina · · Score: 2
    Would you say " quick way to write one-off scripts to do quick repetitive jobs" Accurately describes the slashdot application?

    how about "piece of shit" then?

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  43. whitespace-is-syntax by Fweeky · · Score: 2

    I always find my eye searching for the ending delimiter at the end of each block of code; this basically means I'm forever having to stop myself from thinking the code is somehow incomplete when I read Python.

    I also found Python conciderably more opaque than Ruby, although I strongly suspect that had more to do with the documentation I found on it than anything else.

    That most of the examples of Python apps I looked at were pretty messy didn't really help either :)

    Unfortunately for Python, Ruby's filled my requirement for a clean dynamic language; I expect my next language to be more along the lines of SmallTalk or Lisp. Python just doesn't look that interesting anymore :)

    <eagarly awaits a flood of examples and docs that'll make me change my mind and fall in love with it>

  44. Re:Will it enforce readable code? by AndrewHowe · · Score: 1, Flamebait

    Hahaha, get back under your bridge, troll!
    VB lower level than C... LOL
    I'm only a little Burrahobbit and I wouldn't make above a mouthful... So don't even bother!

  45. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    Any language is hard to read if you do not know it. "Readable" assumes a level of competence on the part of the programmer reading the code... e.g. if you do not know assembly, asm code looks pretty unreadable... So saying perl is "unreadable" to me says more about the programmer...

  46. Call me an idiot but.... by zoobaby · · Score: 0

    Wasn't there something about Perl 6 being released not too long ago? Anyway this release will give all the scriptkiddies something to do for a day.

    1. Re:Call me an idiot but.... by PythonOrRuby · · Score: 2

      Parrot 0.0.7 was released last night. It contains a very rudimentary first Perl6 compiler, based on the Perl6 grammar by Sean O'Rourke, and Melvin Smith's IMCC intermediate language.

    2. Re:Call me an idiot but.... by Anonymous Coward · · Score: 1, Informative

      Perl 6 is still reportedly about a year and a half away.

      There have been periodic postings on slashdot of design documents describing how perl 6 will function. This is probably what you rememebr seeing.

  47. Worthy upgrade? by Coplan · · Score: 2
    Is it worth upgrading at this point? Does anyone, having used it, say its all that much better?

    Most of what I do is basic anyhow...so from what I've read, I'm not sure its worth an upgrade at this point. I don't think my projects would benefit that terribly much from it.

    1. Re:Worthy upgrade? by Anonymous Coward · · Score: 3, Informative
      It is definetly worth the upgrade. Some highlights from perldelta:
      • Perl's built-in sort should be about 20% faster on most lists
      • More accurate number representation
      • Lots of new modules and pragmas, including, for all C fans out there, one that implements C's switch.
      And don't forget that this release adds Windows CE or "Windows Powered" or whatever MS are calling it now as a supported platform. Mobile Perl applications AHOY!
    2. Re:Worthy upgrade? by archen · · Score: 1

      finally I can use swtich! Ahh... I feel so redeemed. That better be going into perl 6.

    3. Re:Worthy upgrade? by Graelin · · Score: 1

      JSYK, the 'Switch' module has been around for quite some time now. You should visit CPAN more often.

    4. Re:Worthy upgrade? by baka_boy · · Score: 2

      Don't wait for your favorite development tools and languages to get ported to PocketPC -- bring your PocketPC device to them!

  48. Re:Excellent! Now I have something to do at work : by philj · · Score: 1

    DBD::Oracle is an utter whore to get compiled & running on a HPUX box.

  49. Re:Which is better? Perl or HTML? by Jeppe+Salvesen · · Score: 2, Informative

    Which is better? Horses or cantelope melons?

    HTML and Perl are two completely different things. HTML is a way of representing (textual) data, while Perl is a way of processing and/or creating data.

    --

    Stop the brainwash

  50. Explanation of a pumpkin by roadkill999 · · Score: 0, Redundant

    patch pumpkin n. [Perl hackers] A notional token passed around among the members of a project. Possession of the patch pumpkin means one has the exclusive authority to make changes on the project's master source tree. The implicit assumption is that `pumpkin holder' status is temporary and rotates periodically among senior project members. This term comes from the Perl development community, but has been sighted elsewhere. It derives from a stuffed-toy pumpkin that was passed around at a development shop years ago as the access control for a shared backup-tape drive.

  51. Easy upgrade by Plutor · · Score: 2, Informative

    For those with Perl already, the following is an easy way to download and upgrade:

    perl -MCPAN -e 'install J/JH/JHI/perl-5.8.0.tar.gz'

    1. Re:Easy upgrade by Green+Light · · Score: 1

      I tried that on MacOS X 10.1.5, here is what it told me:

      Welcome to Darwin!
      [localhost:~] tkm% perl -MCPAN -e 'install J/JH/JHI/perl-5.8.0.tar.gz'
      Illegal division by zero at -e line 1.


      I guess that your example needs some more work, or else I do...

      --
      "Send an Instant Karma to me" - Yes
    2. Re:Easy upgrade by bertilow · · Score: 5, Informative
      perl -MCPAN -e 'install J/JH/JHI/perl-5.8.0.tar.gz'

      That should probably be:

      perl -MCPAN -e 'install perl-5.8.0.tar.gz'

    3. Re:Easy upgrade by Plutor · · Score: 1

      Some people are saying that putting in the full distribution path isn't working for them. I'm running 5.6.1 right now and "perl -MCPAN -e 'install perl-5.8.0.tar.gz'" doesn't work for me. Try both, if one doesn't work, I guess.

    4. Re:Easy upgrade by Basje · · Score: 1

      make sure your mirror carries it already :)

      --
      the pun is mightier than the sword
    5. Re:Easy upgrade by Basje · · Score: 1

      I think it depends on the version of the CPAN module you are running...

      --
      the pun is mightier than the sword
    6. Re:Easy upgrade by Plutor · · Score: 1

      I've got CPAN 1.61. Which is coincidentally the most recent version.

    7. Re:Easy upgrade by namespan · · Score: 2

      For some reason, whenver I try to CPAN anything else, the shell INSISTS on trying to update perl for me. I don't want perl updated. I just want my modules....

      Any way to supress this?

      --
      Libertarianism is rich wolves and poor sheep playing gambler's ruin for dinner.
    8. Re:Easy upgrade by chrsbrwn · · Score: 2, Informative

      You have an old version of CPAN.pm.

      Newer versions of CPAN won't try to upgrade Perl itself (or a few other critical dependencies, can't remember exactly which) unless explicitely requested (using a command like the one mentioned earlier in the thread).

      To fix this, you need to upgrade only your CPAN module (not bundle-cpan) before trying to install other modules.

      Example:

      # perl -MCPAN -e shell
      cpan> install CPAN
      cpan> reload CPAN

      Then you can use CPAN to install other modules, and it shouldn't try to install the new Perl. It might, however, refuse to install a new module version that requires or depends on the new Perl.

  52. Re:Will it enforce readable code? by budgenator · · Score: 2

    I agree with you, My formal training is a COBOL programmer, and I've written Perl programs that I consider readable even by COBOL standards. These are not one-timer scripts, but real world applications.

    Sure Perl can be unreadable, and I'll admit if you want to write the most unreadable code humanly possible that actualy does something, Perl is probabaly the language for you. Try writing poetry in VB!

    --
    Apocalypse Cancelled, Sorry, No Ticket Refunds
  53. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    I bet you're a Debian & Gnome user too, arn't you?

  54. Re:Will it enforce readable code? by frleong · · Score: 1
    the great thing is that you have the option of writing horribly unreadable code to do in 3 lines what it would otherwise take 10 to do.
    Other than a false sense of pride for doing something creative, I don't know how great it is to write horribly unreadable code. The syntactic features of Perl actually increase the probability of writing "concise" code, which in the majority of cases, lead to unreadable code.
    --
    ¦ ©® ±
  55. Even plain english is hard to write and read... by Anonymous Coward · · Score: 0

    when the writer is not that good at it. Perl si great as it is.

    1. Re:Even plain english is hard to write and read... by Anonymous Coward · · Score: 0
      Perl si great

      Was it in Perl or English?

  56. Re:TROLL! by Anonymous Coward · · Score: 1, Interesting

    I agree. I'm a graduate student overseas at CERN. For my thesis, I'm working on prime number factoring sieve algorithms. I initially used "Fortran", but there were performance issues, so I switched to perl. It's much faster at matrix operations than the cobol libraries I was previously using, and since it's interpretted, I don't have to worry about long recompiles or syntax errors.

    TMTOWTDI!

  57. Re:Will it enforce readable code? by I+didn't · · Score: 1

    Bah, bad coders can't even write readable English (or their native language).

  58. Re:Will it enforce readable code? by zsmooth · · Score: 2

    ::Sigh:: yet another person who thinks that because someone says Perl's fundamental purpose is quick scripts, they're saying it can't be used for other purposes.

    You are correct that it can be used for real, big, major, mission-critical applications, but that's not what it's original intent was. Quote from the O'Reilly book:

    In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible.

    Everyone here understands that Perl can and is used for large applications, but that still wasn't its original intent. New features have made it appropriate for that but perl has always kept its vision of "keeping the easy things easy".

  59. Try Erlang by axxackall · · Score: 2, Informative
    You may find Erlang is interesting and useful:

    Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance.

    In other words, it's a small concurrent functional programming language developed by Ericsson after their experiments with Lisp and Prolog.

    Although, you will not love it if have already poisoned by OO "snake oil"

    If it's a case then try Dylan

    --

    Less is more !
  60. Uh, none of these comments are about the story by Junks+Jerzey · · Score: 4, Insightful

    I see people bashing Perl for it's supposed unreadability. I see people bashing Perl so they can advocate Python or Ruby. I see people making general, blanket statements about code readability, as if these opinions are always ready to burst forth, making the speaker a hit at parties.

    Arguments about programming languages on this level are pointless beyond belief. It's like arguing which pop band is better than another. Who cares? It's all opinion and hearsay.

    1. Re:Uh, none of these comments are about the story by Anonymous Coward · · Score: 0

      I don't want to bash PERL in favor of Ruby or Python, I want to bash PERL 5.8.0 for bloat. I do not know what the size of the binaries are, but the source is nearly twice as heavy as 5.6.1. Also, how many people really need or want Unicode?

    2. Re:Uh, none of these comments are about the story by Menthos · · Score: 1

      I do, and a majority of this world's population also do so that their written language can be displayed. If you are going to process even a tiny bit of that in any non-broken way, you do too.

      --

      GNU/Linux. The Freshmaker.

    3. Re:Uh, none of these comments are about the story by Anonymous Coward · · Score: 0

      grep clue

    4. Re:Uh, none of these comments are about the story by Anonymous Coward · · Score: 0
      I see people bashing Perl for it's supposed unreadability. I see people bashing Perl so they can advocate Python or Ruby. I see people making general, blanket statements about code readability, as if these opinions are always ready to burst forth, making the speaker a hit at parties.

      No. They make these statements because they are true.

      Arguments about programming languages on this level are pointless beyond belief.

      On this level, it's not. Some languages are badly designed. Some are better designed. Perl is one of the worst, as is Tcl. That's why you keep seeing people bashing Perl for it's unreadability. Ask yourself why people aren't bashing Java or Ruby for the same problem.

      It's like arguing which pop band is better than another. Who cares? It's all opinion and hearsay.

      This is Python vs Ruby. Objectively, a draw.

    5. Re:Uh, none of these comments are about the story by gusnz · · Score: 2

      It's like arguing which pop band is better than another. Who cares? It's all opinion and hearsay.

      I haven't heard any of Opinion's songs yet, but Hear'Say definitely suck.

    6. Re:Uh, none of these comments are about the story by Zog · · Score: 1

      It's like arguing which pop band is better than another.

      They're boy bands, and n'sync can take backstreet any day of the week, for your information. (so THERE!)

      Anyway, seriously, this is very true - it really doesn't matter what language one uses - there are generally two different classes of coders:

      Clean: Know how to use the aspects of the language given to make comments where needed, how to keep things from becoming too bloated, how to split up different parts of a project (parsing, output, calculations, etc), and generally just putting a sane amount of effort to keeping things clean, consistent, and documented (from a coder's point of view)

      Unclean: Tend to require a certain language to write aesthetically pleasing code - depend on certain aspects of languages to keep things from becoming overly complex, have 5000-line scripts which would be far better organized in a different fashion (generally just not splitting different chunks of the project apart), and a general belief that documentation isn't necessary to explain why things were done in a certain manner

      From experience, documentation isn't so important about how things were done (this tends to be on the obvious side with most even lightly-experienced programmers; others, including many kernel hackers follow it like a religion), but it is often very important on the side of why things are this way. Generally just giving a reader the basic idea of how things flow around helps a lot- it's often useful for optimizing/bugfixing and keeps people from having to sit around for a month on a mailing list before getting to work on stuff themselves, as is often the case in open source - and many give up by this point (myself included, several times).

      Some examples of my development from the ugly-coder to the clean-coder can be found in the releases of my dynamic DNS service (http://www.todd.cx - may or may not work, depending on where you are in the world, but Google's cache should have a fair amount of it)... For the most recent, just contact me personally (it's a very significant amount cleaner than the last posted release; my e-mail is on the website)

      Also, all you other python-guys should definitely note this: Python doesn't make you code cleanly. See my older sources, if you don't believe me. It can, however, be done quite elegantly (as can any other language out there), when done right (get my latest release from me to check that side out)

  61. NOT WORKING, please mod the working install up. by arnoroefs2000 · · Score: 5, Informative

    Which is in this thread also.

    ( perl -MCPAN -e 'install perl-5.8.0.tar.gz' )

  62. ActiveState by Flounder · · Score: 3, Interesting

    ActiveState Perl is still 5.6. Any ideas when it'll be updated?

    I run the scripts on Linux, but I do my coding on a WinAMD machine.

    --

    No boom today. Boom tomorrow. There's always a boom tomorrow. - Cmdr. Susan Ivanova

    1. Re:ActiveState by hobbs · · Score: 4, Informative
      ActiveState Perl is still 5.6. Any ideas when it'll be updated?
      ActiveState is already working on a 5.8-based ActivePerl, but the timeframe for release is not yet set (it will be this summer).
    2. Re:ActiveState by lunenburg · · Score: 2

      Cool. Hopefully they'll also update their PPM repository, where many modules are a year and a half old. Perl/Tk, for example, is two revisions behind.

  63. Pseudohashes? by Anonymous Coward · · Score: 0

    There's a comment about pseudohashes being depreciated, but the tense of the comment is pretty strange. What's up? Are pseudohashes actually depreciated in perl 5.8.0? --j

    1. Re:Pseudohashes? by chromatic · · Score: 2, Informative

      Yes, pseudohashes are deprecated in Perl 5.8.0. They will be removed completely in Perl 5.10.0.

    2. Re:Pseudohashes? by BorgCopyeditor · · Score: 1
      There's a comment about pseudohashes being depreciated

      $depreciate = "decline in value";
      $deprecate = "recommend against using";
      if($deprecate != $depreciate) {print "Not the same word!\n";}

      :)
      BCE
      --Your punctuation skills are insufficient!

      --
      Shop as usual. And avoid panic buying.
    3. Re:Pseudohashes? by thogard · · Score: 1

      Has something replaced them?

      They are one of thouse things that once you wrap your head around the low level concepts, you can see why it works.

      [google cache] this explains it better

      It allows stuff like:
      $ph = [
      { apple => 1, pear => 2, kiwi => 3 },
      'red',
      'green',
      'brown',
      ];
      So you can then say
      print $ph->{apple}, "\n";
      The ph->{apple} implyes a dereference to ph->[0] which is a hash so the {apple} pulls back and index which is then used in the array.

      While this is cool for static data, its a real pain to delete records and add other elements. I'm guessing that uglyness is why its going away.

    4. Re:Pseudohashes? by chromatic · · Score: 1

      Pseudohashes were also supposed to improve performance. They did, by about 15%. Unfortunately, they worsened the performance of normal hashes by the same amount.

      5.8.0 added "restricted" hashes, through Hash::Util, and the 'fields' pragma will continue to work. You're not sunk.

    5. Re:Pseudohashes? by Anonymous Coward · · Score: 0

      $depreciate = "decline in value";
      $deprecate = "recommend against using";
      if($deprecate != $depreciate) {print "Not the same word!\n";}

      if($deprecate ne $depreciate) {print "Not the same word!\n";}

  64. RedHat Limbo by RichiP · · Score: 1

    If it just got released, what the heck is in RedHat Limbo that's marked perl-5.8.0-29?

    1. Re:RedHat Limbo by rasjani · · Score: 2
      PACKAGE-VER.SI.ON-BUILD

      So, you got Perl as a package, version is 5.8.0 and build 29 of the stuff thats inside the package. Now, if its 29, it doesnt really mean that its 29th *public release*. Maybe the maintainer made testings with different build configurations or so on ...

      --
      yush
    2. Re:RedHat Limbo by Anonymous Coward · · Score: 0

      That's pretty doubtful. It's actually well-known that Red Hat lies about the versions of packages all the time. They usually try to make release candidates or betas look like the actual release. Don't believe me? Have a look in some SRPMS and you'll see the trend. It's all rather sleazy.

  65. Do you speak Esperanto? by DG · · Score: 2

    The fact that Perl has a multitude of different syntaxes and structures available to do the same job - that hack on hack stuff you disparage - is a feature. It's one of the language's strongest suits. And it closely approximates a typical spoken language, like English.

    Where you see piled-on hacks, I see evolution at work. Perl is richly expressive, and allows you to code in whatever style works best for the task at hand, rather than trying to force the solution-space of the problem into the modeling-space of the language.

    That's why Java and other B&D languages suck so badly - they trade flexability for orthadoxy.

    But spoken languages have proven to be stubbornly resistant to the imposition of bondage and discipline in the name of "simplicity", and attempts at creating new, simpler spoken languages from scratch - like Esperanto - have failed miserably. The parallel with programming language should hold true as well. What is a programming language but a way of communicating with your computer, your users, and other programmers?

    It should be at least as expressive as your spoken tongue, not less.

    "A foolish consistancy is the hobgoblin of little minds" and nothing illustrates that point better than a discussion of Perl by those who don't actually use it.

    DG

    --
    Want to learn about race cars? Read my Book
    1. Re:Do you speak Esperanto? by Slorf · · Score: 1

      I disagree with this, and I've been programming Perl in an enterprise business context for more than five years now. Perl is the lingua franca of our operation, and we use it for everything from CGI scripting to client server applications.

      As is typical in any business, we've had a number of coders come and go over the years. These programmers, myself included, may come from different backgrounds and have styles that reflect this (I.E. a C programmer vs a sysadmin with an awk background, etc.) I'm frequently tasked to repair or extend software that was written by someone who has left the company, with the assumption that it will be easy since I'm a Perl programmer. If the previous programmer's style and background is different than mine, that slows down my analysis while I hit the camel book to figure out what they were doing.

      If it was written/maintained by a single coder, I can usually adapt to their style pretty quickly. However, if the program was maintained by multiple coders over the life of the software, suddenly TMTOWTDI becomes much more of a burden than a benefit. The mental context switching I have to do to handle the inconsistencies becomes a real slowdown, and I sometimes wind up rewriting significant parts of the program just to make it easier to maintain in the future.

      I want expressiveness and flexibility in a spoken language, so I can communicate effectively to both my children and to my knowledgeable co-workers, and so I can write a creative work of fiction, a poem, or a detailed technical document. I don't need that kind of flexibility when I am solving business problems. I need an engineering tool that will allow me to precisely instruct a CPU to perform specific tasks, and to do so in a consistent manner so that both I and my colleagues can effectively maintain the software.

      I wouldn't trade Perl for anything when it comes to doing quick system admin tasks or parsing log files, but for complex tool development, I much prefer a language that promotes readability and maintainability like Python.

      Slorf

    2. Re:Do you speak Esperanto? by Tepic++ · · Score: 1

      Note: my reply is not specifically about Perl, but about the concepts embodied in the parent post. I do not have enough experience to comment on Perl.

      It's one of the language's strongest suits. And it closely approximates a typical spoken language, like English.

      So it is easy to be ambiguous to the reader? How is this a good thing when maintaining a program?

      Where you see piled-on hacks, I see evolution at work. Perl is richly expressive, and allows you to code in whatever style works best for the task at hand, rather than trying to force the solution-space of the problem into the modeling-space of the language.

      That is not the problem. The problem is where you have a few equally good ways of solving a solution, that as a whole detract from the language because of the need to learn and decide between a number of them. Also the need to learn all of them because other people have used different solutions to you.

      If you have a computing problem that cannot be cleanly solved by a current language because it uses different concepts you can create a language that is domain specific.

      That's why Java and other B&D languages suck so badly - they trade flexability for orthadoxy.

      Why is orthadoxy bad? Does it not waste enough resources for you? Being creative in producing new and better algorithms I think is good. Being creative in producing slightly new ways to produce the old algorithms and programs is just a waste I think.

      But spoken languages have proven to be stubbornly resistant to the imposition of bondage and discipline in the name of "simplicity", and attempts at creating new, simpler spoken languages from scratch - like Esperanto - have failed miserably. The parallel with programming language should hold true as well. What is a programming language but a way of communicating with your computer, your users, and other programmers?

      It should be at least as expressive as your spoken tongue, not less.

      The purpose of a language is to communicate. Spoken languages are extremely expressive because they need to express a massive range of things. A computer only has an extremely limited range of concepts that it can understand, so languages for a computer only need to be able to express a limited range of concepts. This is why C only has about 30 keywords, yet it is extrememly useful in the domain of computing, and also why I think the previous two paragraphs are false in the conclusions that they are trying to reach.

      A programming language is generally not used to communicate with your users. This would be like saying the metal ore you use in creating the spanner is being used by the tool company to communicate with the mechanic.

      At the moment, the reason that new spoken languages have not take root is not because they are simpler. Reasons I can think of are:

      • invested time in learning old language
      • current user base
      • dificulty of learning a new language (even a simple new language for humans would be complex)
      • culture

      While a programming language that allows you multiple ways of doing the same thing will allow you to program in the style that you currently think, probably improving efficiency for you, this style is almost certainly not the same as other programmers. Furthermore if you learn and improve, it is unlikely that it will stay the same for you either. You have basically said the equivalent of: more languages and dialects on the earth increase the ease of communication between people. Actually reducing the number of languages is what is needed to help communication between people because people can now read your code without having to invest time in learning a new language/dialect and your way of thinking.

      "A foolish consistancy is the hobgoblin of little minds" and nothing illustrates that point better than a discussion of Perl by those who don't actually use it.

      Please note the word 'foolish'.

      I think you have taken a stand on simplicity vs. creativity (complexity) in the subject of computer languages without evalutating the consequences.

  66. Re:Will it enforce readable code? by Mike+Connell · · Score: 2

    Of Perl: "It also powers Sweden's entire pension system [oreilly.com]"

    Your fanaticism seems to be clouding your vision :-)

    For the Swedish pension system, it is completely wrong to say that Perl powers the entire thing. If you had to choose only one thing, that would have to be Oracle. Slap bang, right in the middle, Oracle keeps the data. Most of the surrounding application is Perl - but not all of it - they also use JScript, VB and PL/SQL.

    All this information is from the interesting link you posted. It's worth a read.

  67. Actually .. by Anonymous Coward · · Score: 0

    ... it prints:
    'Helo World!'

    With '!' and line break.

  68. Will perl ever compile? by Anonymous Coward · · Score: 0
    From the known problems in the release notes:

    "The Compiler Suite: bytecompiling and compiling still do not work"

    Heck even Visual Basic compiles!

    1. Re:Will perl ever compile? by chromatic · · Score: 1

      Visual Basic compiles to C?

    2. Re:Will perl ever compile? by sabat · · Score: 3, Informative


      Yes, it will -- starting with Perl 6.0. This is a complete rewrite that compiles to a bytecode called Parrot by default. You can compile Parrot bytecode into binary, or almost anything.

      --
      I, for one, welcome our new Antichrist overlord.
    3. Re:Will perl ever compile? by ZxCv · · Score: 2

      Doesn't Perl already *technically* compile?

      --

      Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
  69. Math class by FattMattP · · Score: 1

    Silly Pudge. 5.10 5.8. Didn't you take math classes?

    --
    Prevent email address forgery. Publish SPF records for y
  70. Math class by FattMattP · · Score: 3, Funny

    Silly Pudge. 5.10 is less than 5.8. Didn't you take math classes?

    --
    Prevent email address forgery. Publish SPF records for y
  71. Regarding Perl Criticisms... by Art_XIV · · Score: 5, Insightful

    First off, let me state that choice of programming language isn't a reflection of the abilities of a developer.

    I've seen dedicated, talented developers produce great apps with Perl, Python and even (gasp!) pre-.NET Visual Basic. On the other hand, I've seen careless, uninterested developers produce mounds of pure, unadulterated crap with C++.

    The language used has little to do with the quality of thefinal result, and has a lot more to do with the person coding with it.

    The language used for a product often isn't even up to the developer. Employers and clients mandate a language as often as not, sometimes for valid reasons, sometimes for moronic reasons ("The CEO plays golf with this dude who told him that using Java is gonna save big bucks").

    Let's look at three factors we can use when comparing languages: Performance, Development Effort Required, and Maintainability.

    C++ is a great language in experienced and knowing hands. When well-done its performance is good but it tends to be very effort-intensive.

    Perl and other very high-level languages are less effort-intensive, but they have a corresponding performance trade-off.

    Java and .NET languages are somewhere between the two, though they both seem closer to C++ on the scale than they are to VHL languages.

    The maintainability of a language seems weakly related to individual languages. Most of the maintainabilty qualities of a product will spring from the all-too-often overlooked Planning, Design, and Discipline of the developers that worked on it!

    I'll allow that Perl can really let you shoot yourself in the foot as far as maintainablity goes, but what languages aren't like this? Especially beloved C++?

    --
    The only thing that we learn from history is that nobody learns anything from history.
    1. Re:Regarding Perl Criticisms... by Anonymous Coward · · Score: 0

      One thing you have to say for Perl - it is consice. That is why it is my favorite language to code in. It is truely a beauty how you can express your ideas in so few characters in perl.

      Viva perl!

    2. Re:Regarding Perl Criticisms... by Anonymous Coward · · Score: 0

      Not necessarily so good for those who may have to interpret your ideas when you're not around.

      Viva non-obfuscated code!

    3. Re:Regarding Perl Criticisms... by Ed+Avis · · Score: 1

      I've always found that Java is more effort-intensive and slower than Perl. But that's just my experience as a lone developer, Java might be better for large projects because it's easier to formally define interfaces and abstractions. (I doubt it though ;-))

      --
      -- Ed Avis ed@membled.com
    4. Re:Regarding Perl Criticisms... by elflord · · Score: 1
      The maintainability of a language seems weakly related to individual languages. Most of the maintainabilty qualities of a product will spring from the all-too-often overlooked Planning, Design, and Discipline of the developers that worked on it! I'll allow that Perl can really let you shoot yourself in

      There's another tradeoff that you don't go into, which does affect maintainability. It's essentially an effort/maintainability trade. There are two conflicting principles:

      • Code should be easy to read
      • Code should be easy to write

      Python fairly consistently chooses readability, while perl consistently chooses writability. This makes python moderately more effort intensive than perl, which is why perl is often preferred for quick and dirty sys admin scripts. As for design and planning-- yes, sure that's important, but it's not the only factor. There are other languages like Eiffel that don't have the terse flavor of languages with C like syntax, but are more readable.

      I'll allow that Perl can really let you shoot yourself in the foot as far as maintainablity goes, but what languages aren't like this? Especially beloved C++?

      C++ is closer the "code should be easy to read" end of the spectrum than Perl. Perl gives you much more expressive power, and makes it much simpler to produce write-only code.

    5. Re:Regarding Perl Criticisms... by Anonymous Coward · · Score: 0
      There are two conflicting principles:
      Code should be easy to read
      Code should be easy to write

      Except for 10-liners, that's definitly not true. All the code I wrote that is easy to read, was code that was easy to write.

    6. Re:Regarding Perl Criticisms... by elflord · · Score: 1
      All the code I wrote that is easy to read, was code that was easy to write.

      That in no way contradicts the fact that there is a readability/writability tradeoff in designing a language. All it says is that you haven't observed such a tradeoff in the process of writing code.

    7. Re:Regarding Perl Criticisms... by thogard · · Score: 1

      Only if they don't know the language. Its just a computer literacy issue. With perl, you have to know all of it to understand someone elses code.

    8. Re:Regarding Perl Criticisms... by kubalaa · · Score: 1

      Burden of proof is on the original poster. I don't see any reason for an inverse relationship between the two. On the contrary, given the similarity between translating words to thoughts and visa versa, I'd expect them to go hand-in-hand. Easy to write doesn't mean shorter, it means easy to translate your thoughts directly into code. Personally, I find Python easy to write because it's nearly identical to the pseudocode I'd write when thinking about a problem.

      --

      "If you look 'round the table and can't tell who the sucker is, it's you." -- Quiz Show

    9. Re:Regarding Perl Criticisms... by elflord · · Score: 1
      Burden of proof is on the original poster. I don't see any reason for an inverse relationship between the two. On the contrary, given the similarity between translating words to thoughts and visa versa, I'd expect them to go hand-in-hand.

      There are some design choices that could lead to code being both easy to read and easy to write. These choices are easy to make, and language designers will almost always make them, because you have nothing to lose by improving the readability and writability of the language.

      The more difficult decisions are those where there are tradeoffs- you can add in a feature that would make it easy to write code rapidly, at the expense of readability. Examples of this include weak typing, Perls "default" variable, some of perls regular expression syntax, and obscure or unconventional uses of operators.

      But the biggest tradeoff is choice. Choice always improves writability (because you can write it anyway you want) but hurts readabilty (because there are too many different ways to write it). The "there's more than one way to do it" philosophy makes perl great for the quick-and-dirty, but not so great for large scalable software.

      Easy to write doesn't mean shorter, it means easy to translate your thoughts directly into code.

      But having the choice of shorter always improves writability (for example, "the default" variable)

      Personally, I find Python easy to write because it's nearly identical to the pseudocode I'd write when thinking about a problem.

      Python is fairly easy to write by virtue of being a well designed interpreted language. For example, it's much easier to write in python that it is in C++. But there are some problems for which perl is easier to write than Python, in particular those that do a lot of text manipulation (Perls main strength)

  72. Re:Will it enforce readable code? by Cato · · Score: 2

    The article makes it clear that they wanted the whole thing written in Perl - they only used the other languages because they couldn't find enough Perl programmers in Sweden.

  73. release numbering by Anonymous Coward · · Score: 0

    I guess I can upgrade from Linux 2.4.18 to 2.4.9 then.

    1. Re:release numbering by Anonymous Coward · · Score: 0

      finally. I've been waiting forever for that upgrade.

  74. Re:Try CONECTIVA LINUX - We've got already fresh p by Anonymous Coward · · Score: 0

    Listen, little cowboy...

    You've got no authority or position of judge to penetrate me with such evil words. But you sincerely deserve to work for Dell Computers. I know who you are now... You are that Stephen guy... That want to make every dude a Dell owner. And guess what, Dells do come with your tiny little piece of shit you call "Pee-Cee" - American bastard.

    I will shit in your starred flag, I will burn it till it verts blood from all the people you have killed in this world just for the sake of filling your bellies with cash and macarroni.

    Yes, you are on the top of the world but one thing you can't deny - that what makes you and your country so high is the amount of corpses that you guys piled up to reach the top.

    Next time you direct your word to me, I will reveal some necromancy prophecies about the destiny of yours.

    Thank you very much.

  75. Programming Perl by jbolden · · Score: 1

    It sort of sounds like you just want version 3 of programming Perl he has the lists sorted by type and does mention where things have changes. At leasts that covers you up to 5.6. I'm waiting till 5.8.1 to switch over to 5.8. In any case with that you could then look at the 5.8 regex which should be pretty close.

  76. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    I believe the correct quote is "Perl looks like an expolosion at a typewriter factory"

  77. Re:Will it enforce readable code? by Christianfreak · · Score: 2

    I really don't see how you get that interpretation from that quote simply because the quote and what we're talking about have absolutly nothing to do with each other!

    Seriously... the quote doesn't say "Perl is designed to make small jobs easy, without making the large jobs impossible." It says 'easy' and 'hard'. I contend that you can have large programs that are fairly easy to write and vice versa small programs that are very complex.

    That quote says nothing about not writing large mission-critical apps in Perl.

  78. Unicode? by Anonymous Coward · · Score: 0

    Why make a scripting language even more inefficient and bloated? Why waste time on something like that when there are many other interesting PERL-related projects on the todo list?z

    1. Re:Unicode? by chromatic · · Score: 1

      Oh no, we wasted our time! Our boss, Mr. Anonymous Coward doesn't like what we did! He'll fire us for sure! Quick, porters, let's rip out all of the things we wanted to work on for our own projects, and let this brave, kind soul show us the way!

      Oh wait, you're talking about PERL I work on Perl. My mistake, sorry.

  79. Re:Which is better? Perl or HTML? by pcs305 · · Score: 1

    Perl can pump out HTML, can HTML pump out Perl? if so, HTML wins.

  80. Re:Will it enforce readable code? by Noel · · Score: 1

    Yeah, and Linus once said that Linux was so dependent on i386 that it couldn't be ported to anything else.

    Things can change.

  81. Re:Will it enforce readable code? by chromatic · · Score: 1

    Being concise usually leads to unreadable code? I disbelieve your assertion, for it is well known that, as the length of description increases, the probability of overflowing the attention span and the number of ideas readers can keep in mind simultaneously increases. Consequently, one should strive to make things as simple as possible to ease understanding and uptake. I shall repeat the main ideas of this paragraph, restating them as briefly as possible, to underscore my point, to provide a memorable phrase, and to serve as an object lesson:

    Concise things can be easier to read.

  82. Binary Incompatibility by sinuhe · · Score: 2

    Binary incompatibility is beginning to be Perl's bane. Didn't FreeBSD remove perl from their base system because of this?

    1. Re:Binary Incompatibility by Anonymous Coward · · Score: 0

      > Binary incompatibility is beginning to be Perl's bane. Didn't FreeBSD remove perl from their base system because of this?

      Eh? Perl's an interpreted scripting language, what binary incompatibility do you mean?..

    2. Re:Binary Incompatibility by bovinewasteproduct · · Score: 3, Interesting

      Huh?

      No, Perl was removed becuase it has started to become very bloated, plain and simple. 5, 10 or even 20 MB could be handled, but it is starting to get a little bit bigger. Plus the language bigots had crept in too...:)

      Atleast I got Perl in there, JKH and others were voting for TCL instead. (YUCK)

      When I added Perl to FreeBSD 2.0 way back when, it came in very handy for things which needed to be written. In this day and age, FreeBSD has started to take more and more things out of the base installation and allow people to add them back in via a port. Which I agree with, why does a web server need Sendmail installed???

      BWP

    3. Re:Binary Incompatibility by sinuhe · · Score: 1

      Though I prefer Tcl over Perl, and even Python, (It's simpler and more efficient, is quite small, is better programming--my opinion--and is released under an X11/BSD like license), I don't believe that scripting languages should be part of a base distribution (especially when they have got as big as Perl).

  83. And now an Exegesis on the announcement of 5.8.0: by Anonymous Coward · · Score: 0

    It be ready.

  84. Re:Will it enforce readable code? by Tepic++ · · Score: 1

    I think code readability is a product of being concise and keeping things simple. At a certain point, increasing the concision of code increases complexity (by removing obvious meaning about what the code is trying to accomplish).

    For example, the following includes explicit information that tells the reader that a choice is being made:

    (rand() < 0.5) ? (print "Definitely yes\n") : (print "Outlook cloudy\n");

    While this implies some matrix or arithmatic operation instead:

    print(("Definitely yes\n","Outlook cloudy\n")[2*rand])

    I think an extreme example is the concise perl code examples for DeCSS decoding.

  85. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    -1 Irrelevant Thought parent funny.

  86. Re:Will it enforce readable code? by elflord · · Score: 1
    Any language is hard to read if you do not know it . "Readable" assumes a level of competence on the part of the programmer reading the code... e.g. if you do not know assembly, asm code looks pretty unreadable... So saying perl is "unreadable" to me says more about the programmer...

    You seem to be afflicted with a certain sort of political correctness where everything has to be "equally" readable. It's simply not true. For example, a good assembly programmer might be able to read code in a hex editor, but they can't do so as quickly and easily as a python programmer can read a python program that does the same thing. There are a number of factors that can make a language intrinsically more or less readable.

  87. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    Ahh great ... so you never write good tools,
    do you? You know, when you write GOOD software,
    other people want to use it, too. Soon they
    start to ask for new features, a bugfix here,
    an extension there. "maintainable code is not
    necessary" is a very POOR excuse for: I am too
    lazy or I dont have the selfdiscipline to write
    maintainable perl code.

  88. Re:Will it enforce readable code? by elflord · · Score: 1
    How about: a good coder can write readable code in any readable language?

    Well that's his point, isn't it ? That a language can be intrinsically more or less readable than another language. Once you accept the possibility of an "unreadable" language, there's a legitimate question of the degree of readability.

  89. Re:Will it enforce readable code? by elflord · · Score: 2
    good coders can write readable code in any language.

    One important tradeoff is that between writability and readability. The two conflicting philosophies are:

    • Code should be easy to write
    • Code should be easy to read

    You simply can't have it both ways, because to allow concise expressive syntax is to allow ambiguity. Perl consistently chooses writability over readability. A language that prefers readability over writability will require more effort to code in, but be more readable (Python is a good example of such a language).

  90. Re:Will it enforce readable code? by elflord · · Score: 1
    Perl is not just a little language for one-off scripts. It can be used for real, big, major, mission-critical applications.

    Perls design tradeoffs are writable over readable, rapid development versus safety. Wherever there's a choice to make the language easier to write or easier to read, Perl chooses easier to write. Wherever there's a choice between flexibility and reliability, perl chooses flexibility. All the tradeoffs Perl makes are an advantage for writing quick and dirty applications, and a drawback for writing large scale, robust applications.

    That doesn't mean that it's not possible to write large maintainable programs in that language, it just means that it was not designed to the criteria that favor developing such applications.

  91. Does anybody get Socket Problems on Solaris 8? by Anonymous Coward · · Score: 1, Interesting
    I am wondering if anyone else is getting problems with Perl sockets under Solaris 8, including under Perl 5.8.0.

    A while back sockets under perl 5.6.0 stopped working on all of our Sun Solaris 8 systems. I tried recompiling it, 5.6.1, and 5.8.0rc2 (I plan on trying perl 5.8.0 final soon), but all of them fail on the socket tests, which include:

    • lib/io_multihomed..Protocol not supported at lib/io_multihomed.t line 83.
    • lib/io_sock........Protocol not supported at lib/io_sock.t line 37.
    • lib/io_udp.........Protocol not supported at (maybe your system does not have a localhost at all, 0.0.1) at lib/io_udp.t line 60.
    (Note: We do have localhost defined in our host table).

    It was a while before we noticed the error so I do not know what could have changed on our system to cause this problem. The only thing I can think of it being is that we patch all our systems between the time it last worked and when it did not. I did note that one of our installed Solaris patches is 111327 which does replace the socket libraries. We recently got a new SunBlade 2000 Workstation and I tried it again on it, and it too has the problem. It came prepatched and includes 111327 amongst many others. I have yet to try taking that patch off (mostly because of the logistics involved in removing one of our active Sun off the network for the test, and I am not willing to take a security patch off our system with it on the network).

    This is not the same as noted in PerlFAQ 8, though I guess somebody at Sun could have deceided to change the Protocol numbers again, but I think it unlikely. I even went as far as modifying the test routines to add "use Sockets;", but no help.

    Also, where can one submit and view bugs reports for Perl?

    1. Re:Does anybody get Socket Problems on Solaris 8? by Anonymous Coward · · Score: 0

      whave value is your local host defined as?
      It need not be 127.0.0.1 and the code looks for .0.0.1

    2. Re:Does anybody get Socket Problems on Solaris 8? by Anonymous Coward · · Score: 0

      It is defined as so in /etc/hosts:

      127.0.0.1 localhost

      Like I said before it WAS working under 5.6.0. Then we noticed that is stopped working on our entire lab of workstations. At that point we tried to recompile it and several other versions. The only thing I think it could be is the security patch.

  92. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    Your response borders on surreal.

  93. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0

    Things to do today:

    1. Start computer language flame war.
    2. Wrestle Plato.

  94. Better yet: by Craig+Shergold · · Score: 1

    print "been there. done that.\n";

  95. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0
    Your response borders on surreal.

    I see heavy use of Perl damage your logic ability. The response was clear, simple, and right on the point.

  96. Re:Will it enforce readable code? by Anonymous Coward · · Score: 0
    I think it's easy enough to write readable code in perl, the great thing is that you have the option of writing horribly unreadable code to do in 3 lines what it would otherwise take 10 to do.

    I see. And I guess you spend 3 hours for writing those 3 lines ? Because, of course, if you spent 1 minute, it won't be worthwhile to shorten it ; unless you spent the major part of your time writing throw-away scripts (say 300 three-liners per day).

  97. Re:Will it enforce readable code? by MartinB · · Score: 2

    I seem to remember that it was the principal development language for Interwoven TeamSite... which is many things, but not a quick one-off script.

    Average 1st time install price for Interwoven customers? About US$250,000 for licenses. Development time and hardware are on top.

    --

    The only thing you can accurately describe as "Scotch" is a sticky tape made by 3M. And it's

  98. Re:Will it enforce readable code? by Doppleganger · · Score: 2

    Well that's his point, isn't it ? That a language can be intrinsically more or less readable than another language. Once you accept the possibility of an "unreadable" language, there's a legitimate question of the degree of readability.

    And as I said... I could just as easily say that Russian is unreadable, simply because I can't read Russian.

    Any language is unreadable if you don't know how to read it, regardless of how readable the code is. If you do know how to read it, then it is no longer an "unreadable" language, and any lack of readability is due to the writer, not the language.

  99. Re:Will it enforce readable code? by elflord · · Score: 1
    Any language is unreadable if you don't know how to read it, regardless of how readable the code is. If you do know how to read it, then it is no longer an "unreadable" language, and any lack of readability is due to the writer, not the language.

    This is all true, but it doesn't alter the fact that one language can be more readable than another.

    If you do know how to read it, then it is no longer an "unreadable" language, and any lack of readability is due to the writer, not the language.

    Not necessarily. There's a common political correctness that says that all languages must be equally readable. This is a fallacy. There are factors in a language that can make it less readable. It's not a difficult exercise to contemplate language features that would hurt readability (requiring all caps is one example that would make the language less readable, for example. So would alternating every second letter with characters from a pseudo-random sequence.)

  100. Re:Will it enforce readable code? by Doppleganger · · Score: 2

    This is all true, but it doesn't alter the fact that one language can be more readable than another.

    So, which human language is inherantly the most readable, oh guru?

    As to your examples... some people find all caps to be inherantly *more* readable. And throwing in pseudo-random sequences doesn't change anything.. that would increase the difficulty of learning how to read the language, not any inherant "readability" of the language (if there is truly a coherant, understandable structure, something that is pretty much required for the human concept of "language").

    As I've pointed out twice already, Russian is entirely unreadable by my standards. The alphabet is gibberish to me, the words mean nothing (except for "goodbye", which I picked up from somewhere), and I don't even know enough to start thinking about the grammar of the language. Does my inability to grasp this language mean anything at all to the native Russian speaker who has grown up with it, and thinks that English is equally incomprehensible?

  101. Re:Will it enforce readable code? by elflord · · Score: 1
    So, which human language is inherantly the most readable, oh guru?

    I don't know enough about human languages to make informed judgements. However, I can make such judgements about programming languages.

    some people find all caps to be inherantly *more* readable.

    The problem with all-caps is that all the letters are the same height. People can and do use the differing heights of lower case letters as visual cues. This makes it harder for the eye to follow text written in all-caps.

    And throwing in pseudo-random sequences doesn't change anything.

    Sure it does. Add enough noise to the signal and finding the signal becomes a difficult task in itself. For example, if we added 3000 such random letters, then the language would be less readable, because the very act of finding the letters would be time consuming. Learning the language wouldn't be that hard (any one who could count to 3000 could do it), but it would be harder to learn to read the language, and reading would demand more of the reader.

    As I've pointed out twice already, Russian is entirely unreadable by my standards. The alphabet is gibberish to me, the words mean nothing (except for "goodbye", which I picked up from somewhere), and I don't even know enough to start thinking about the grammar of the language. Does my inability to grasp this language mean anything at all to the native Russian speaker who has grown up with it, and thinks that English is equally incomprehensible?

    You can keep repeating it, but it does not in any way contradict what I am saying. Of course you won't be able to read a language you are not familiar with, and of course the fact that I am ignorant about the Russian language doesn't mean that Russian is unreadable, but it does not follow that all languages are equally readable.

  102. Untrue by mkcmkc · · Score: 3, Interesting
    First off, let me state that choice of programming language isn't a reflection of the abilities of a developer.

    On the contrary, if the choice was the developer's and he/she made a poor choice, that is very much a reflection of their (lack of) ability.

    The language used has little to do with the quality of the final result, and has a lot more to do with the person coding with it.

    Generally speaking, given the choice, a good programmer won't make a poor choice of language for a project. (We don't always have that choice, of course, but a good programmer knows the difference and will readily admit to suboptimal management constraints.)

    The maintainability of a language seems weakly related to individual languages.

    Most of the garbage code I see these days, both proportionally and in absolute terms, is written in Perl. I believe that this is due to design problems with the language itself, and due to the fact that the language is so popular, therefore drawing to it many unskilled programmers, and due to the compounding interaction of these two factors.

    Perl was there first, and Larry Wall deserves accolades for it, IMO. These days, though, is there anyone that doesn't cringe at the thought of having another bale of newbie Perl code dumped on them to maintain?

    --Mike

    --
    "Not an actor, but he plays one on TV."
  103. The Search for Quality is not Futile by mkcmkc · · Score: 2
    Arguments about programming languages on this level are pointless beyond belief. It's like arguing which pop band is better than another. Who cares? It's all opinion and hearsay.

    Are we really supposed to believe that all languages are equally good/bad and that we might just as well choose any of them for any project? This is nonsense.

    Languages do differ in clarity, maintainability, readability, and many other features, and, in the end, this will lead to fundamental differences on average in the engineering quality of the code. Little science (AFAIK) has been performed to study the relative quality of different languages, but there is no reason to believe that it could not be studied in principle. Nor is there much reason to believe that there wouldn't be substantial differences between languages.

    --Mike

    --
    "Not an actor, but he plays one on TV."
    1. Re:The Search for Quality is not Futile by Junks+Jerzey · · Score: 2

      Are we really supposed to believe that all languages are equally good/bad and that we might just as well choose any of them for any project? This is nonsense.

      But quality is often a personal opinion. Some people hate Perl and Ruby, but love Python. Some people hate Python and Ruby, but love Perl. Some people hate Perl and Python, but love Ruby. How can you get anywhere in such discussions?

    2. Re:The Search for Quality is not Futile by mkcmkc · · Score: 2
      But quality is often a personal opinion. ... How can you get anywhere in such discussions?

      As I said, "science". For example, in principle, one could set up studies to observe the various qualities (e.g., reliability, maintainability, readability, etc.) of code written in these various languages. These can be objectively measured--it's not just a question of opinion.

      In practice, studies like this would be tricky and expensive to perform, which is probably why they're so rare. This doesn't negate the fact that languages can objectively differ in these properties.

      My personal opinion is that languages with lots of sharp corners cause grave problems in practice. I've certainly seen it happen an awful lot. Nonetheless, until the science is done, it's just anecdote and guesswork.

      --Mike

      --
      "Not an actor, but he plays one on TV."
    3. Re:The Search for Quality is not Futile by Junks+Jerzey · · Score: 2

      These can be objectively measured--it's not just a question of opinion.

      What fantasy world are you living in? Seriously. And it's all irrelevant anyway, look at the popularity of C++.

  104. why are brainfuck and machine code unreadable by dgym · · Score: 2, Insightful

    to oppose some claims that the only reason brainfuck and machine code are unreadable is because the reader doesn't know HOW to read it I will go into why they are inherently less readable than some other languages DESPITE being able to read them.

    thankyou elflord for already getting the point ;)

    at one level brainfuck is extremely easy to read, it only has 8 characters, each of which corresponds to one of 8 simple to understand operations. Anyone could learn to read off the code operations given 10 minutes because there isn't very much to learn. brainfuck is still inherently unreadable because it is very hard to work out what a peice of code's functionality is when only given a list of low level operations. In brainfuck there are no function names to give a big clue as to what the function does, there are no variable names, and there are no comments.

    Just imagine trying to write readable code in perl if you were forced to call all your functions f1, f2, f3.... and all your variables $v1 $v2 $v3.... and you are not allowed to create any comments, and you have to build your own strings at run time too, none of these abstract types thank you. Just to finish off remove all the whitespace from your perl script and tell me if it is readable. brainfuck forces all of those points, so although the operations are very readable, the functionality isn't.

    machine code is also quite readable, it is perfectly possible to learn how to read machine code, but it is much harder to read machine code than it is assembly. Again this has nothing to do with the posibility of learning to read either, it is infact purely based on how quickly you can read them. There is a one to one translation between machine code and assembly (apart from label names)
    but whereas I can read an assembly op in well under a second, I would have to spend a fair amount of time deciphering which op code is being used, with which options and registers and data. Even if I knew everything I needed to know to work out what the instruction is, I am still having to calculate it each time I read a code. In variable length instruction sets I have an even worse time as although I can see one assembly instruction followed by another, and I can simply skip looking at a few I am not interested in, in the machine code I have to work out every instruction before I know where the next intruction begins.

    Now, for a stupid example that knowing how to read two languages does not imply equality in ease of reading them, as appropriate for a comparison of assembly to machine code: I pick english for one language and english with each letter offset by one for the second, so that 'a' is translated to 'b'.

    The languages are almost identical, and you have been given everything you need to know how to read both, but how long does it take you to READ AND UNDERSTAND e"readable" compared to e1"vosfbebcmf"?

    machine code is harder (but possible) to read because you have to work more things out than you do with assembly.

    brainfuck is harder to read than C like languages because you don't have any names or comments to give you clues as to the functionality. If you wrote C with random function names, random variable names, no comments and agreed to never use any number except 0, and never use any strings then your code would be on par with brainfuck : but brainfuck manadates this style, which is why it inherently difficult to understand.

  105. Re:Amusing by Anonymous Coward · · Score: 0

    What I find funny about this, is that "gurus" (read arseholes on an ego trip that tend to live in c.l.p.m) always bitch and whine about people being confused about PERL/Perl, _still_ haven't changed the man page in the download available from perl.org. (It still says: "Practical Extraction...")

    As far as I am concerned, they lost the valid right to bitch about the incorrect usage of PERL/Perl a long time ago.

  106. Re:Amusing by chromatic · · Score: 1

    If you were adept enough to read that, surely you were clever enough to notice it's never PERL within the text of the man page. You might even have noticed a link to perlfaq1, which explains the joke.

    I've personally noticed people who write PERL have a strong tendency to write awful code.