Slashdot Mirror


Perl 1.0?

James A. A. Joyce writes "The title says it all. There's a tiny blurb over at dev.perl.org. Download Perl 1.0 here, for all of those nostalgics in the Slashdot audience! It's only 263KB, so why not give this piece of 1980s computing history a try?"

92 comments

  1. Quote in the bottom of my slashdot main page by Smartcowboy · · Score: 1, Interesting

    "The camel has a single hump; The dromedary two; Or else the other way around. I'm never sure. Are you? -- Ogden Nash"

    1. Re:Quote in the bottom of my slashdot main page by larry+bagina · · Score: 2, Insightful

      the only thing spookier than the coincidental quote at the bottom of the page is the coincidental ad at the top of the page. And the predictable content between them.

      --
      Do you even lift?

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

    2. Re:Quote in the bottom of my slashdot main page by Anonymous Coward · · Score: 0, Offtopic

      a dromedary has one, a bactrian has two, both dromedary and bactrian are camels. Anybody dares to mod this +1 informative?

    3. Re:Quote in the bottom of my slashdot main page by Anonymous Coward · · Score: 0

      You do realize that there are several possible banner ads on this page, don't you?

  2. Re: Aside from historical value, what's the point? by gooru · · Score: 4, Funny

    so why not give this piece of 1980s computing history a try?

    Because I can't actually do anything with it?

  3. There's one good thing about it. by Anonymous Coward · · Score: 0, Funny

    At least it doesn't consider whitespace syntaxtically significant!

    1. Re:There's one good thing about it. by sporty · · Score: 1

      'cuz remember.. 8 spaces != 1 tab != 4 spaces

      great for when yuo do :set shiftspace=8 or tabstop=4

      --

      -
      ping -f 255.255.255.255 # if only

    2. Re:There's one good thing about it. by Anonymous Coward · · Score: 5, Insightful

      If you've actually *USED* Python, you'll find that it's a benefit, not a problem. Enforced readability through the language is good. You should stick to a coding style anyway when you're working on a large project with several people (something you may not have done if you've no significant commercial programming under your belt).

      Having Python choose that style for you is a terrific readability benefit compared to something like Perl. It makes decyphering other people's Python code very very easy. It may not be exactly what you like - but I think it's a big win in the long run.

      What will you complain about next? Having to use squiggly brackets in C? Having to press enter on the command line?

    3. Re:There's one good thing about it. by SharpFang · · Score: 1, Interesting

      You should stick to a coding style anyway
      true.
      Enforced readability through the language is good.
      false.

      I often find myself writing some C or Perl piece that if I follow general rules of indentation and generally obey the standard, I'll made that thing unreadable. Like, I have a 3-line-long boolean statement in if() (not even very complex but using lonv variable names) or add some "inline" error exception code like "...or die()" that's unrelated to the logical structure and shouldn't be indented.

      Sticking to a code style is generally a good advice. But it shouldn't be LAW because indentation is meant to help understand the program by exposing important stuff, and hiding the less important and author of the language simply can't predict beforehand what we write will or will not be important and it's up to the programmer to follow the rules when they are wise and to BREAK THEM when they contradict the logic of the program being written and stand in way of better, more readable code.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    4. Re:There's one good thing about it. by kruntiform · · Score: 5, Informative
      Oh dear, it looks like you didn't close one of your HTML blocks properly ;) In Python, you can join lines with a backslash:
      if 1900 < year < 2100 and 1 <= month <= 12 \
      and 1 <= day <= 31 and 0 <= hour < 24 \
      and 0 <= minute < 60 and 0 <= second < 60: # Looks like a valid date
      return 1
      and you can split any kind of bracketed expression over multiple lines:
      month_names = ['Januari', 'Februari', 'Maart', # These are the
      'April', 'Mei', 'Juni', # Dutch names
      'Juli', 'Augustus', 'September', # for the months
      'Oktober', 'November', 'December'] # of the year
      I don't know that you mean by inline error exception, but you can start comments at the fist column so that they stand out:
      # *** inline error exception ***
      "something ..."
      (Some of the formatting in the above examples is messed up a bit by some slashdot bogusness. Actually, there's an argument against Python's whitespace blocks for you -- things like slashdot can mess them up.)
    5. Re:There's one good thing about it. by trouser · · Score: 1

      Yeah, cause if you were forced to indent your code it might become slightly more readable which would marginally diminish the obfuscation inherent to all Perl code.

      I suspect the initial popularity of Perl was due largely to it having been much better than the alternatives available in the late 1980s. And it's still better than the alternatives that were available in the late 1980s. The continued popularity is driven by an established userbase of guru Perl coders who aren't willing to budge and new users who pick it up because it's so popular it must be good.

      I would rather use Java than Perl. And I'd rather be eaten by a crocodile than use Java.

      --
      Now wash your hands.
    6. Re:There's one good thing about it. by unshaven23 · · Score: 1

      Perl's not that bad a language, once you've added the pragma use strict;. I love using perl for most quick and easy to automate tasks. If I had to run back to C every time I needed to look for "Foo" in a database or "Bar" in a logfile to replace it with its lowercase equivalent I wouldn't get any work done.

      I'm all for strictly typed languages, with tons and tons of possibilities that perl doesn't have, but those languages don't save me time on small things. Perl is ideal for "quick shell scripts and CGI", but if you asked me to write something larger I'd grab back to C or C++ (depending on the nature of what you're asking).

      Most people that use perl (nowadays) will tend to agree with me on this. If it has to be done quick and dirty, use perl and make good friends with CPAN. If you have the time and the project is bound to grow, use a different language.

    7. Re:There's one good thing about it. by metamatic · · Score: 2, Insightful

      So when I pull up a piece of Python code that's indented with three spaces, and edit it in vi which is configured to indent with tabs and display tabs as three spaces, the Python interpreter is going to somehow divine which lines line up? I don't think so.

      No matter how much Python advocates try to convince me that it'll all somehow be better, I already spend too much time having to clean up irregularly-formatted Java and Objective-C code, and that's just for my own benefit when I have time spare. I don't want to deal with a language where I have to reformat other people's code just so I can work with it.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    8. Re:There's one good thing about it. by Anonymous Coward · · Score: 0

      If you can't do it in Korn Shell, it doesn't need to be done.

    9. Re:There's one good thing about it. by Anonymous Coward · · Score: 1, Insightful

      Perhaps you have not yet mastered the Zen? If one tries to code Perl like "C", you get "C" that is written in Perl. Such is not the way of the Zen.
      Instead, code the Perl, and let the magic do the work for you.

      Perl is very expressive. It does what you say, and very little that you say has zero effect, compared with Java, where -- perhaps -- half of the code only exists because it must exist. Computo ergo Sum.

      As for the sigils, perhaps you are treating programs as English. This is a mistake. A few characters of Perl are like Egyptian Hieroglyphs, tremendously powerful and instantly obvious to the trained eye. So little can be said with so few words, wasting no verbage or nounage. If you try to read it as English instead of understanding the meaning as Perl, you will be lost. @_ is not line noise. It's symbolic -- and for those that think graphically (outside of language), it can be processed very quickly -- as often in software some things have no good English analogue.

      Do not pronounce $_ as "dollar_underbar", *know* the meaning of $_. Do not look at %dict as "percent dict", but know what the sigils do for you. They are there to lead the way, all you have to do is understand them instead of read them.

      Also grasp the Zen of functional programming and the futility of over-complexity. Complexity serves to make things harder, so one must forego complexity. OOP? Added complexity for small programs. Structure? Add only what is required.

      And I suppose you are also wondering about regex syntax. Regexes have clean syntax? This is to say that Elephants are too big and should come in a variety of colors.

      Anyhow, learn the idioms, understand the Perl, don't speak it, and you will have a great written language -- if I can't be spoken or translated easily into other languages, perhaps that is the meaning of it's true greatness.

      The written language of Egypt and the Mathematics of Babylon are not analogous to what English/Arabic -- but this doesn't mean they are not worthy of our study. What you see as line noise or drawings painted on walls may carry an elegance that simple utilitarian code-as-English will never succeed at grasping.

      Larry's interest in language has benefitted Perl immensely. Try to look on Perl with that light.

    10. Re:There's one good thing about it. by Da+VinMan · · Score: 2, Interesting

      Well, the obvious answer is to just use an editor where this isn't a concern. It really isn't too much to ask to standardize the tools on a project so things like this don't become an issue. Besides, with vi, I believe you could just embed vi directives that configure vi on the fly to your current tabbing standards, etc. True?

      Anyway, I used to think that the division between programmers produced by Python's indentation requirement was a problem. After all, it makes us argue about a stupid sounding issue. However, I don't think it's a problem anymore. It's an acid test. To me, the central question is: Will you conform your working style enough to allow tools to augment your work and to allow the rest of your team to work with you? If your answer is no, then Python is not for you. If you answer is yes, then Python is for you. I prefer not to work with people who answer 'No' to that question. In general, they like to make a PITA out of themselves on several levels, and I have no desire to put up with that pain.

      Of course, you could counter all this by saying something to the effect of "BS! It's really a question of whether you let your tools get in the way." or something like that. But then, that just affirms what I've been saying. Allowing our tools to change our working style a bit is a tradeoff, and it's one that many programmers are not willing to make. Hooray for them I say... let someone else work with them.

      The technical point you raise above is a good one (i.e. the fact that Python code can be broke by inconsistent editor settings), but was never a problem for me on the Python project I worked on. Maybe we were just lucky, but all the problems people like to cite about the indentation rule just never came up for us. Even if it had been issue, I don't see how it could be much worse than a missing curly brace in Java. It's not a big deal to fix.

      --
      Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
    11. Re:There's one good thing about it. by AJWM · · Score: 1

      If I had to run back to C every time I needed to look for "Foo" in a database

      Um, what have you got against whatever flavor of interactive SQL your DB supports?

      or "Bar" in a logfile to replace it with its lowercase equivalent

      Um, vi? or awk? or sed? or even ed?

      Maybe the reason Perl programmers like it so much is that they're too lazy to learn any other tool. Just as if the only tool you have is a hammer, every problem looks like a nail, then if you're a Perl hacker, every problem looks like it needs a Perl solution...

      --
      -- Alastair
    12. Re:There's one good thing about it. by Anonymous Coward · · Score: 0

      For me, Perl scripts become unmaintainable at size about 100 kB. I do most of my everyday tasks in Perl. It is more powerful than any of shell scripts, sed or AWK. For scripts longer than 100 kB I'd recommend Ruby or Python. But if you want speed, none of them.

    13. Re:There's one good thing about it. by sisukapalli1 · · Score: 1


      Most people that use perl (nowadays) will tend to agree with me on this. If it has to be done quick and dirty, use perl and make good friends with CPAN. If you have the time and the project is bound to grow, use a different language.


      I mostly disagree. A lot of advances in the abstraction of data (text templates, DBI abstraction, xml parsers, etc.) and modules from CPAN make a very compelling case for using Perl as a very good language for large projects too. Just that someone can write crappy code, doesn't make the language bad.

      A good example: a lot of people that I know that write servlets use things like

      out.println("<a href=\"" + pageLink + "\">Welcome</a>");

      or something in perl, like
      print OUT "<a href=\"$pageLink\">Welcome</a>";
      or better,
      print OUT qq{<a href="$pageLink">Welcome</a>};

      when some templating mechanisms are better used, such as velocity
      <a href="$pageLink">Welcome</a>
      or Text::Template
      <a href="$pageLink">Welcome</a>
      (hehe... same way in both perl and java)

      Comparing how novices write in Perl with how seasoned developers write in java is comparing apples to oranges.

      S

    14. Re:There's one good thing about it. by Anonymous Coward · · Score: 0

      What about the people who pick up your Python code 10 years down the road? Will they be using the exact same editor with the exact same settings? If so, it'll be a significant hindrance to them because it will be so outdated (see Ada-83 editors, FORTRAN editors, etc).

    15. Re:There's one good thing about it. by Da+VinMan · · Score: 1

      I have a hard time believing that people will have a hard time grokking today's Python code 10 or even 20 years from now. Really, isn't it much more evil to have to look up/remember the meanings of Perl operators over time? Good grief! If Python's worst sin is making people deal properly with whitespace in their programs, then future Python legacy programmers will have easy lives indeed!

      --
      Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
    16. Re:There's one good thing about it. by bheerssen · · Score: 1

      Blanket statements... Aaarghhh.

      Don't base your choice of language on any arbitrary criteria such as file size. A language should be chosen based on the specific requirements of the application under development.

      If your application needs to be able to parse many different kinds of documents, or you need to parse documents for many different types of data, the perl would probably be a nice fit. If you just want to enter and display data in a database, perhaps some other language might work better.

      I have a script (perl 5.6 compatible) that is pushing 2000 lines, plus custom modules (3) that add up to an additional 1000 lines, plus CPAN modules that add up to lord knows how many lines. It gets accessed by as many as 50 clients simultaneously. It runs fine. By the time I finish porting it to mod_perl, it should handle many, many more simultaneous requests than that.

      I chose perl for this project because no other language that I know of can match the text mangling features in perl. Perl can be (and often is) used successfully in an enterprise environment - in fact, you are looking at one. Slashdot runs perl.

      --
      (Score: -1, Stupid)
    17. Re:There's one good thing about it. by metamatic · · Score: 1

      Well, the obvious answer is to just use an editor where this isn't a concern.

      Oh, so now I need a special text editor to use Python. Are there any editors which automatically adjust their tab width to match the apparent value used in the file being edited? Or are you talking about some hypothetical editor?

      It really isn't too much to ask to standardize the tools on a project so things like this don't become an issue.

      On the contrary, I think the chances of my persuading the open source developers whose code I use to conform to one standard, let alone my standard, are slim to none.

      As to why tab damage is worse than a missing curly brace in Java: the difference between a curly brace and the absence of a curly brace is always visible.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    18. Re:There's one good thing about it. by elflord · · Score: 1
      No matter how much Python advocates try to convince me that it'll all somehow be better, I already spend too much time having to clean up irregularly-formatted Java and Objective-C code,

      Spoken like someone who's never actually tried it. Look, until you've tried it, you don't know what you're talking about, and you're just blowing smoke (like most people on slashdot). So shut up already.

    19. Re:There's one good thing about it. by Istealmymusic · · Score: 1
      Oh, so now I need a special text editor to use Python.
      No, all you need is to learn how to repeatedly press the spacebar instead of the tab.
      --
      "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
    20. Re:There's one good thing about it. by Istealmymusic · · Score: 1
      Um, vi? or awk? or sed? or even ed?

      Maybe the reason Perl programmers like it so much is that they're too lazy to learn any other tool. Just as if the only tool you have is a hammer, every problem looks like a nail, then if you're a Perl hacker, every problem looks like it needs a Perl solution...

      Perl is more like a swiss army knife than a hammer.
      --
      "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
    21. Re:There's one good thing about it. by AJWM · · Score: 1

      Perl is more like a swiss army knife than a hammer.

      Fair enough. But while I use my swiss army knife a lot, I'd still rather use the right tool for the job if it's available.

      --
      -- Alastair
    22. Re:There's one good thing about it. by weierstrass · · Score: 1
      I like to use a programming language designed to ELIMINATE repetitive tasks.

      --
      my password really is 'stinkypants'
    23. Re:There's one good thing about it. by Istealmymusic · · Score: 1

      Then why don't you use an EDITOR that eliminates repetitive tasks?

      --
      "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
    24. Re:There's one good thing about it. by metamatic · · Score: 1

      Sorry, but you need to convince me that tab damage isn't going to be a problem with Python, even though it is with every other programming language I've ever used (over a dozen).

      Maybe there *is* something remarkable about Python that makes it not subject to the formatting problems encountered in every other programming language, but convincing me of such a remarkable claim will require more than telling me to shut up.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    25. Re:There's one good thing about it. by shadowpuppy · · Score: 1

      Asking people switch editors is probably taken with more disdain than asking them to switch programming languages. By now I know how to use vi/vim better than most people know how to use emacs. Switching would be a real pain in the ass. However, I can switch the editor to use spaces instead.

      Personally I find the use of spaces for indentation to be an abomination. Because what invariably happens is somewhere someone uses 3 spaces instead of 4 or something like that. Then one editor will mix spaces and tabs. I used to have macros that would fix indentation for perl. I'm not sure what I would do for Python.

    26. Re:There's one good thing about it. by elflord · · Score: 1
      Sorry, but you need to convince me that tab damage isn't going to be a problem with Python, even though it is with every other programming language I've ever used (over a dozen).

      Saying that indentation is going to bring python projects to a halt is like trying to argue that unpaired parens will stop a perl project (or LISP!). In practice, it just doesn't work like that. Why ? Is it because it's easy to remember to close all parens ? Or is it perhaps because the interpreter catches these errors very quickly ?

      The same happens with python. Indentation errors are caught very quickly. At worst, it's a minor nuisance while you fix the settings on your editor.

      This, I suspect, is the reason why Python programmers do not in practice run into substantial syntax problems as a result of tabbing. It is a complete non-issue for people who program in python, it's only an issue for people who don't program in python and want something to bitch about.

    27. Re:There's one good thing about it. by Anonymous Coward · · Score: 0
      No matter how much Python advocates try to convince me that it'll all somehow be better, I already spend too much time having to clean up irregularly-formatted Java and Objective-C code, and that's just for my own benefit when I have time spare. I don't want to deal with a language where I have to reformat other people's code just so I can work with it.

      You don't, of course. You have to fix the formatting of irregularly-formatted Java and ObjC code because people have formatted it wrong. Improperly indented Python code doesn't work (in most cases, doesn't compile). You'll never have to reformat someone else's code to work with it, because it already has consistent formatting. You just continue to work in that formatting.

      Both emacs and vim auto-adjust for files with a modeline (a single comment specifying tab width, spaces vs. tabs, etc.) If someone has slipped up and left out the modeline, you react like so (vim):

      :set et ts=4 # for code indented four spaces
      :set noet ts=8 # for code indented with tabs

      Slap in a modeline and the problem is permanently fixed. Basic familiarity with your editor and the ability to type, in the worst case, fourteen characters are all that's required.

    28. Re:There's one good thing about it. by Anonymous Coward · · Score: 0

      You wouldn't worry. The indentation is /already/ consistent as written, or the code wouldn't run. Either use a modeline in the file or do a quick

      :set et ts=4 sw=4
      :%retab

      and you're ready to edit to your heart's content. If you still insist on indenting with tabs, you can use

      :set noet ts=8 sw=8
      :%retab

      One editor mixing spaces and tabs isn't a problem; the person will have to fix their editor to be consistent or their code won't work.

    29. Re:There's one good thing about it. by Da+VinMan · · Score: 1

      Switching would be a real pain in the ass. However, I can switch the editor to use spaces instead.

      Well, there you go! You found a way to work with the team. That's the whole point as far as I'm concerned.

      Because what invariably happens is somewhere someone uses 3 spaces instead of 4 or something like that.

      That would be my fear too. If you and I were on a project together and some greenhorn did that, suffice it to say that they would feel the sting from the reprimand for a while.

      As far as what you would do with code like that, the answer is to throw it back to the dork who messed it up. If the indentation is all off, then it won't even compile. Therefore, it's not even usable. So, why worry about salvaging it? It's not even worthy of that yet.

      See? The whole indentation thing is just a bunch of fear. It's not a real problem. I'm guessing from your post that you have not used Python yet, or that would be obvious to you too. Give it a try, you just might like it.

      Or don't. But please refrain from expressing a bunch of FUD on something you haven't tried yet.

      --
      Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
    30. Re:There's one good thing about it. by Fujisawa+Sensei · · Score: 1

      COBOL has similar maintainability benefits to Python.

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    31. Re:There's one good thing about it. by Anonymous Coward · · Score: 0

      Maybe because he prefers programming language that eliminates repetitive tasks, not an editor. Please see original post.

    32. Re:There's one good thing about it. by HumanTorch · · Score: 1

      > What will you complain about next? Having to use squiggly brackets in C?
      how could you complain about squiggly brackets in C and languages with significant whitespace at the same time?

      seriously, a lot of people (including me) think languages that use braces are more readable than those that use significant whitespace such as VB. Perhaps we are just used to it, or perhaps the squiggly is the visual key to unlock our latent modularity..

  4. eh by Anonymous Coward · · Score: 4, Funny

    so why not give this piece of 1980s computing history a try?

    Or yould do as the C programmers do and still be left in the 70's.

    1. Re:eh by GnuVince · · Score: 0, Troll

      If I had points, I'd mod you "Insightful". It's true, C has not evolved much (except for libs) since the 70's. Time to move to the 21st century please.

    2. Re:eh by Anonymous Coward · · Score: 0

      Time to move to the 21st century please

      Welcome to .Net's C#, hm, what's that familiar smell? Maybe if I sipped a bit more on my cup 'o joe...

    3. Re:eh by adelton · · Score: 1, Offtopic

      Why move anywhere? It's perfect.

    4. Re:eh by tomstdenis · · Score: 2, Informative

      It hasn't radically changed but it has changed none the less.

      We don't use K&R style function parameters. I'm rather certain various keywords are new [and deprecated like "auto"]. The language is actually a standard now, not just a "works on my compiler".

      I can't really see a valid argument for most newer languages. For example, often people argue "with Java you don't need to recompile to run it elsewhere". But that isn't actually a feature of the Java language. It's a feature of the Java runtime environment.

      Nothing is stopping people from writing a C compiler that targets a VM that is then subsequently ported to other boxes.

      Similarly for Javascript [which is very much like C not Java ... wierd, should be called C-script] C could be used there.

      And similarly for CGI applications, etc, etc.

      The only other language I can understand for daily use is Perl which is way better at text manipulation. C++ doesn't actually allow the author todo anything that can't be performed with clever use of structures [and not that complicated todo anyways]. Ruby and PHP are Perl knock-offs, Java is just stupid, slow and a bitch to work with, etc, etc, etc.

      There is probably a reason why the vast majority of software people use is written in C. I just can't put my finger on it...

      Tom

      --
      Someday, I'll have a real sig.
    5. Re:eh by Anonymous Coward · · Score: 0

      You make some excellent points, tom. So, what do you think of the new perl built-ins, can_manham() and bottle_mangoo()? I'd imagine they'll help you out a great deal!

    6. Re:eh by tomstdenis · · Score: 0, Offtopic

      I don't get it. Can you rephrase your post in a form that doesn't read like a down syndrome retard bashed his keyboard with his forehead?

      Thanks,
      Tom

      --
      Someday, I'll have a real sig.
    7. Re:eh by Anonymous Coward · · Score: 0

      Are you describing his post, or yours?

    8. Re:eh by tomstdenis · · Score: 1

      Yes.

      --
      Someday, I'll have a real sig.
    9. Re:eh by Anonymous Coward · · Score: 0

      I thought so. There's a treatment for your condition. It's called laying off CANNING THE MANHAM AND BOTTLING THE MANGOO!

    10. Re:eh by tomstdenis · · Score: 1

      Can you please continue posting these? These sorts of replies are validating my existance. I need them to reassure I'm still alive.

      I need you! Give me your soul!

      --
      Someday, I'll have a real sig.
    11. Re:eh by Anonymous Coward · · Score: 0

      Oh, okay, I'll do my best. See, it's about Perl, right? and perl has functions. And now it's got functions called first,

      can_manham()

      and another one called

      bottle_mangoo()

      See, as you, tomstdenis, both can manham and bottle mangoo, I figured you might use these functions often to help you can manham and bottle mangoo. Does that help at all?

    12. Re:eh by Anonymous Coward · · Score: 0

      I don't swing that way.

    13. Re:eh by tomstdenis · · Score: 1

      TROGDOR!

      --
      Someday, I'll have a real sig.
  5. memories by Anonymous Coward · · Score: 0

    Anyone else remember perl's early foibles and its similarity to awk?

    1. Re:memories by Anonymous Coward · · Score: 0

      You mean besides its similarity to awk?

  6. Some things to point out. by James+A.+A.+Joyce · · Score: 3, Informative

    Before I continue, I'd just like to point out that on the offchance that something goes wrong with regard to dev.perl.org, I uploaded a copy before the article was posted in case of Slashdotting or if you just want to use a mirror.

    With that out of the way, there's a few limitations of the language which I found quite interesting:

    • There's no switch statement
    • There are no hash table variables (i.e. those beginning with a '%')
    • No support for recursive subroutines
    • And yes, Larry does say that Perl "actually stands for Pathologically Eclectic Rubbish Lister, but don't tell anyone I said that." Oh. Oops.

    Oh, and when you download the package and untar it all into a directory, it won't work out of the box. Here's some instructions on how to make it work on Red Hat Linux system. First, untar it all into one big folder. Then, run ./Configure and just press Enter. When 'make depend' has run, you need to edit the Makefile. Open the Makefile up in your text editor and get rid of all the lines containing either '<built-in>' or '<command line>'. Then you should be able to just do 'make' and you now have a copy of Perl 1.0 as ./perl in the current directory.

    1. Re:Some things to point out. by Anonymous Coward · · Score: 0

      There's no switch statement in perl5 either, dumass.

    2. Re:Some things to point out. by Anonymous Coward · · Score: 0

      yes there is. It was added in perl 3, IIRC.

    3. Re:Some things to point out. by QuMa · · Score: 4, Informative

      There still isn't a switch statement you know... Well, not in perl 5 anyway. There'll be one in perl 6.

      (oh, 5.8 has "use Switch;", but that's cheating)

    4. Re:Some things to point out. by reynaert · · Score: 2, Informative
      No, Perl5 has no switch. There are several ways to emulate one (some less ugly than others) but there is no true switch statement. From the perlsyn manpage:
      There is no official "switch" statement in Perl, because there are already several ways to write the equivalent.
      I believe I read Perl6 will have one.
    5. Re:Some things to point out. by SharpFang · · Score: 1

      > Forbidden
      > You don't have permission to access /drewt/tgz/perl-1.0_15.tar.gz on this server.

      Could you fix please?

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    6. Re:Some things to point out. by Magic+Thread · · Score: 1

      As others have noted, 5.8 doesn't have a switch statement either. "Perl actually stands for Pathologically Eclectic Rubbish Lister, but don't tell anyone I said that" also appears in the perl manpage in 5.8, under the Bugs section. I wonder why they still haven't fixed it!

    7. Re:Some things to point out. by chromatic · · Score: 4, Informative

      There are certainly hashes in Perl 1. See hash.[ch], for example.

      Did you file a bug report for your Makefile issue? Richard Clamp is maintaining this version.

    8. Re:Some things to point out. by unshaven23 · · Score: 2, Interesting

      bah, switch is for people who are scared of using if... Incidentally, perl does have a nice alternative. Prepare a hash with all the possible values used as keys, and then use references to functions to do what you want to do.

      For instance:

      #!/usr/bin/perl

      use strict;

      sub reply_y { print "You code too much perl!\n"; }
      sub reply_n { print "You don't use enough perl!\n"; }

      my %switch = ( 'y' => \&reply_y, 'n' => \&reply_n };

      print "Would you use a hash as a switch statement? (y/n) ";
      my $answer = <STDIN>
      if (!$switch{lc $answer)) {
      print "You've reached the default\n";
      } else {
      &$switch(lc $answer));
      }

      I however don't recommend things like this to fellow programmers that have to maintain this sort of code in the near/far future. Things like this tend to become unreadable. I can't say I miss switch that much in perl. Switch always seemed a bit syntacticly unpure in some way, but that's just my twisted mind.

    9. Re:Some things to point out. by cant_get_a_good_nick · · Score: 0, Flamebait

      Things like this tend to become unreadable.
      And thats different from 99% of perl code out there how?

    10. Re:Some things to point out. by Istealmymusic · · Score: 1

      Nothing wrong with dispatch tables. Very maintable in my opinion.

      --
      "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
    11. Re:Some things to point out. by fizbin · · Score: 1

      See, now I'd inline the whole table if you're only using it once:


      print "Would you use a hash as a switch statement? (y/n) ";
      my $answer = <STDIN>;
      if ($answer !~ /^[yn]$/i) {
      print "You've reached the default\n";
      } else {
      chomp $answer;
      {
      'y' => sub {print "You code too much perl!\n";},
      'n' => sub {print "You don't use enough perl!\n";}
      }->{lc $answer}->();
      }

    12. Re:Some things to point out. by Phroggy · · Score: 1

      As long as you're simplifying the example, if it's just printing strings, why use subs?

      print "Would you use a hash as a switch statement? (y/n) ";
      my $answer = ;
      if ($answer !~ /^[yn]$/i) {
      print "You've reached the default\n";
      } else {
      chomp $answer;
      print {
      'y' => "You code too much perl!\n",
      'n' => "You don't use enough perl!\n"
      }->{lc $answer};
      }


      You've lost one of the benefits of using a hash, by the way: your check for $answer against 'y' or 'n' isn't tied to the possible values of the hash, meaning the two could get out of sync if you have many possible values and change them from time to time. Checking if(exists $switch{lc $answer}) is a cool thing to be able to do.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  7. wtf? by larry+bagina · · Score: 5, Funny

    I submitted this story almost 20 years ago!

    --
    Do you even lift?

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

  8. The Language To End All Languages by quinkin · · Score: 4, Funny
    Ah, Perl 1.0.

    All the power of QBasic, the readability of assembly, and the flexibility of DOS batch scripting...

    (Apol. to all the offended nostalgics :)

    Q.

    --
    Insert Signature Here
    1. Re:The Language To End All Languages by Magic+Thread · · Score: 5, Funny

      You forgot "the speed of Java."

    2. Re:The Language To End All Languages by Anonymous Coward · · Score: 0

      And "the regularity of /dev/random"

  9. Sorry about that. by James+A.+A.+Joyce · · Score: 1

    Now fixed.

  10. I think I know the problem by recursiv · · Score: 1

    I submitted this story almost 20 years ago!

    Normally, you would think that with that much lead time, the /. crew would have been able to get their act together and post the story. But I think I figured out what went wrong. Slashdot didn't exist yet!

    --
    I used to bulls-eye womp-rats in my pants
    1. Re:I think I know the problem by SharpFang · · Score: 2, Interesting

      err, slashdot is written in Perl :) So..... was it written in some pre-1.0 version? ;)

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  11. Dupe Post by Anonymous Coward · · Score: 3, Funny

    It has to be, it's 20 years old.

    Oh, how about this:

    I know slashdot is behind the news, but this is ridiculous. :)

    1. Re:Dupe Post by AKnightCowboy · · Score: 1
      I know slashdot is behind the news, but this is ridiculous. :)

      "Bah, I saw this on fark.com three weeks ago."

  12. birthday? by perlchild · · Score: 1

    I thought perl was released december 18th...
    Did I miss something?

    1. Re:birthday? by Anonymous Coward · · Score: 0

      Larry Wall's birthday, you big silly.

  13. Ack!!! by stevens · · Score: 4, Funny

    As someone who uses perl quite a bit, using this 1.0 gave me a line I've seen before only in my nightmares:

    $ ./perl -w -e 'print "Just Another Perl Hacker,";'
    Unrecognized switch: -w
    $

    Aaaaaggghh! Must ... have ... warnings ...

  14. Perl 1.0 by metamatic · · Score: 2, Informative

    "...so why not give this piece of 1980s computing history a try?"

    Because I remember it?

    I didn't consider Perl usable until Perl 5, because that's when it *finally* got lexically scoped local variables... Pretty horrifying that it took four major revisions to get that far.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  15. Re:What the hell? by Anonymous Coward · · Score: 0

    Yep :) JAAJ is a "troll on trolls", being to the troll community what a troll is to slashdot community :) I like that!

    He's an incorreigible karma whore too, but we must him forgive that :)

  16. Re:Why not try it out indeed? by Istealmymusic · · Score: 0, Troll

    Never knew "crap" was an adjective. Maybe you mean Carp? (Its not an adjective either.)

    --
    "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
  17. Re:The title must not say it all by Istealmymusic · · Score: 1
    Also on my annoyance list: "Needless to say." If it's needless to say, then why say it?
    The clause "needless to say" is used to avoid patronizing the more advanced readers, while still providing seemingly-obvious information to the neophytes. Needless to say, what is obvious to one is not necessarly obvious to another; therefore what needs to be said to a neophyte does not need to be said to a guru.
    --
    "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
  18. Re:Why not try it out indeed? by torpor · · Score: 1

    No, I mean crap, as in the stuff that comes out of everyones ass.

    I'll use it however I want. I think Perl is crap!

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  19. Re:Why not try it out indeed? by Istealmymusic · · Score: 1
    Maybe you should read the Carp POD documentation.

    Secondly you contradict yourself. First you say: I mean crap, as in the stuff that comes out of everyones ass.. This cleary coincides with the first definition of crap:

    1 a usually vulgar : EXCREMENT b usually vulgar : the act of or product of defecating
    However, then you say: Perl is crap!. Needless to say this usage corresponds to the second definition:
    2 sometimes vulgar : NONSENSE, RUBBISH; also : STUFF 4b

    You appear to be confused, I suggest you read the Carp documentation, its very informative, and you'll learn a lot about Perl.

    --
    "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
  20. Re:Why not try it out indeed? by torpor · · Score: 1

    I think you must be American. In British English, you can say that you think something is "CRAP" and it means that you think that thing is actually shit.

    No way I'm going to bother with anything at .cpan.org ... I hate Perl.

    It is crap!

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  21. Re:Why not try it out indeed? by Istealmymusic · · Score: 1

    That's very torpor of you.

    --
    "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
  22. I'll tell you why not by Anonymous Coward · · Score: 0

    because it's crap that's why. Python and Ruby are the pimp daddys. Perl is their bitch.

  23. I'm crushed. by chrome · · Score: 1

    ...
    Run make depend now? [y] ./makedepend
    echo arg.c array.c cmd.c dump.c form.c hash.c search.c stab.c str.c util.c version.c | tr ' ' '\012' >.clist
    Finding dependencies for arg.o.
    Finding dependencies for array.o.
    Finding dependencies for cmd.o.
    Finding dependencies for dump.o.
    Finding dependencies for form.o.
    Finding dependencies for hash.o.
    Finding dependencies for search.o.
    Finding dependencies for stab.o.
    Finding dependencies for str.o.
    Finding dependencies for util.o.
    Finding dependencies for version.o.
    echo Makefile.SH makedepend.SH | tr ' ' '\012' >.shlist
    Updating Makefile...
    Now you must run a make.
    chrome@zaphod $ make
    make: *** No rule to make target `', needed by `arg.o'. Stop.