Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Well done -- I'm sure it seems hard at first, but you'll get used to it very quickly. I've been cycling in to work since the beginning of this year[1], and I've lost quite a bit of flab. I feel much fitter for it as well.

    However, I'm lucky in that all the way to work is downhill and all the from work is uphill. So I can come home and get straight in the shower.

    I love my Brompton []. :-)


    [1] Actually, I cycled in before, it's just that it was such a short distance it was hardly worth mentioning. :-

    • Re:Cycling (Score:3, Interesting)

      I assume you need a bike like that because you have nowhere to attach it to outside at work?

      Does it ride well? It looks like it would be hard(er) work than it should be...
      • Re:Cycling (Score:3, Informative)

        Spot on. Well there are some few places to attach it to, but it's a lot less likely to be nicked when under my desk.

        As to riding it, it's not terribly hard work. I've got a 5 speed model which is nicely geared. It's easy in the lower gears, but you can notch up a reasonable speed in the high gears. The main difficultly that I found when I started riding was that you're quite high up in the saddle, with smallish handle bars. This makes the bike feel very responsive to your movements. But I'm so used

  • I don't know if the spanner range stuff in Net::CIDR::Lite would've helped you any, but there it is on CPAN. The first part was just written just as a response to one of MJD's puzzles, and the 'find which CIDR range object(s) an IP address is in' part was written later for the fun of it. Though it doesn't 'find which range object(s) a CIDR address is in', if that's what you needed.
    • This module probably does almost exactly what I've developed, with the minor exception that you're just creating one big list and not caring about a LHS and a RHS. I imagine that could be added somehow if I were so inclined (but I'm not, since my code works now :-)

      It also probably uses a lot more RAM than mine. I tried to keep everything on disk because of the sheer volume of IPs (totaling just over 2 million). We tried to do everything in RAM but it used about 600M of memory, which is too much on an alrea
      • One of MJD's test files had 65536 separate but contiguous x/32 CIDR addresses to merge. If addresses's are contiguous then the middle node is deleted, and the hash object is left with just the start and end of the joined range. If ranges are overlapping, then periodic calls to 'clean' will eliminate the overlapping nodes. If you have many completely separate ranges, then yeah it'll take alot of memory. I'm not sure what you mean by LHS and RHS though (well, I know what they mean, but not the context here :-

        • Ah, by LHS and RHS I mean that say I'm merging lists A and B, I assign to A, and to B, and where I get overlaps I expect to find This has to work for multiple such lists.
          • I assign to A, and to B, and where I get overlaps I expect to find

            Ah, then (I think) it would've been easily doable with Net::CIDR::Lite, though what you ended up with is probably more efficient speed and memory-wise, especially if there are alot of lists (and I admit the docs of N::C::L are lacking).

            Instead of merging the lists, you'd create a 'spanner' object (dumb name, but I didn't know what else to call it), where the labels are the Socket::inet_aton() of what you want assig

  • I used to cycle to/from work - it made me feel alert and healthy. As for showering, I cycled in the winter and always spent 10 minutes or so cooling of in my cycling gear, then changed into work clothes.

    I didn't last more than half a year because I took a corner too fast and broke both my arms. Given that I'd already come off my bike due to poor cornering (which left me picking gravel out of my back in the shower) a few years beforehand I decided to give up.

    I've told quite a few people this story and be
    • At this time of year, the main health risk is idiots in 4-wheeled tin cans who pull out without seeing you. I try to be bright at night, but there's only so much you can do without pulling a battery on a trailer behind you...


      • You should have a look at some of the new CatEye bright white LED battery powered headlights. They're so bright that they make me feel silly for getting one of the hub dynamo systems. :)

  • I would bitwise combine 2 and 8 and get ":". Yes, I was confused too.

    You must have used two strings. Bitwise combination of two strings is different in Perl, than of integers. In fact, if any operand is a number, Perl will try to convert the other argument to a number, too.

    print "2" | "8";




    print 0+"2" | "8";



    In the case of strings, Perl will bytewise combine the bits of the bytes of which the strings consist. For numbers, Perl just combines the integers, commonly 32 bits each.