Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: Golf: Improve this guy's fail . . . please!

by ikegami (Pope)
on Jun 30, 2009 at 22:44 UTC ( #776206=note: print w/ replies, xml ) Need Help??


in reply to Re: Golf: Improve this guy's fail . . . please!
in thread Golf: Improve this guy's fail . . . please!

At the opposite end of the spectrum, reading in the whole file:

local $/; ++$chars{$_} for <> =~ /\w/g

(Trimmed: local$/;++$c{$_}for<>=~/\w/g)

It only accepts one file, though.

Update: 5 shorter, accepts multiple files, and doesn't mess with $/:

++$chars{$_} for map /\w/g, <>

(Trimmed: ++$c{$_}for map/\w/g,<>)


Comment on Re^2: Golf: Improve this guy's fail . . . please!
Select or Download Code
Re^3: Golf: Improve this guy's fail . . . please!
by mr_mischief (Monsignor) on Jul 01, 2009 at 00:38 UTC
    I borrowed your idea and made something short and very ugly which does the whole job including percentages and total. I even added a count of distinct characters:
    ++$t,++$c{$_}for map/\w/g,<>; print$_,"\t",$c{$_},"\t",$c{$_}/$t*100,$/for sort keys %c; print"Distinct: ".keys(%c)."\tTotal: $t\n";

    I doubt I'd call that an "improvement", at least with a straight face. It could be cleaned up pretty easily, though.

      It could be cleaned up pretty easily, though.

      Then do it! No good leaving lousy code floating around... ;-)

        But... but... it's golf! ;-)

        I guess adding a feature's not exactly in the spirit of golf, though. More golfed:

        ++$t,++$c{$_}for map/\w/g,<>; print$_,' ',$c{$_},' ',$c{$_}/$t*100,$/for sort keys%c; print"Total: $t\n"

        So now that that's out of the way, how about still short but somewhat easier to read?

        ++$t, ++$c{$_} for map /\w/g, <>; for ( sort keys %c ) { $p = sprintf '%3.2f', $c{$_} / $t * 100; printf "%-5s%5d%7s%%\n", $_, $c{$_}, $p; } print 'Distinct: ' . (scalar keys %c) . "\tTotal: $t\n"

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://776206]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2014-12-23 05:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (135 votes), past polls