develooper Front page | perl.golf | Postings from April 2009

Re: In these times of economic crisis...

Thread Previous | Thread Next
From:
Jasper
Date:
April 27, 2009 02:36
Subject:
Re: In these times of economic crisis...
Message ID:
81cd84130904270235p7c79e362pa694e58187197784@mail.gmail.com
2009/4/26 Phil Carmody <thefatphil@yahoo.co.uk>:
>
> --- On Sun, 4/26/09, robert wilson <hotaru@safe-mail.net> wrote:
>> Phil Carmody wrote:
>> > We need dollar-free golf!
>> >
>> > In order to answer the question "what ratio of words
>> in the SOWPODS wordlist share no letters in common with the
>> word mackerel?", I quickly threw this together:
>> >
>> > perl -ne '$c[m/[mackrel]/]++;}print($c[1]/$.,$/);{' < sowpods
>> >
>> > However, there were complaints that it had too many dollar signs.
>> >
>> > What's the shortest equivalent script which uses no dollar signs at all?
>> >
>
>> perl -le 'print+(grep{/[mackrel]/}@w=<>)/@w' < sowpods
>
> Wow!!!
>
> It's obvious in retrospect. It's clear my original was horrifically wasteful, and can at least be shortened to this at the cost of one dollar:
> perl -le 'print+(grep{/[mackrel]/}<>)/$.' < sowpods

Shorter, with still one dollar. (actually, only shorter because you
have grep{} instead of grep with a comma, so the same)

perl -alp0e '$_=(grep/[mackrel]/,@F)/@F' < sowpods

Without the dollar, it's a bit longer, of course.

perl -aln0e 'print+(grep/[mackrel]/,@F)/@F' < sowpods

But that is the best I can do..
-- 
Jasper

(I'll send the tested one to the list, Phil)

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About