New radio PIDs, more than 8 characters - "solved"

Ralph Corderoy ralph at inputplus.co.uk
Mon Aug 14 05:51:01 PDT 2017


Hi M,

> I'm horrified by the code repetition.  Doesn't Perl allow 'functions'?

Yes, that's those

    sub foo {
        ...
    }

you see.

It can also hold a regexp in a variable so a `$pid_regexp' could be
defined once and used repeatedly.

    $ perl -e '
    >     $re = qr/^(food|drink|famine)\d*$/;
    >     while (<>) {
    >         /$re/ and print "$. $_";
    >     }
    > '
    abc
    food
    2 food
    drink42
    3 drink42
    xyz
    $

BTW, given your private email, you might be interested to know the
Regular Expressions, of which regexps are an extension, are essentially
a "little language" for describing a regular grammar, level 3 in
Chomsky's hierarchy.  These are grammars that can be matched with a
finite-state automaton, and implementations are either
non-deterministic, like Perl's, or deterministic, like Go's.  As such,
they're a succinct way of expressing many text matching problems, just
as BNF is a convenient method for programming language grammars.  It's
interesting to compare the simple one above to the alternative long-hand
imperative programming form.

-- 
Cheers, Ralph.
https://plus.google.com/+RalphCorderoy



More information about the get_iplayer mailing list