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?"

7 of 92 comments (clear)

  1. 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 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)

    2. 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.
    3. 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.

  2. 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.)
  3. 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
  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.