http://www.perlmonks.org?node_id=370662


in reply to When should a wheel be reinvented

Man who reinvent wheel knows awful lot about making wheels.

So treat reinvention as a learning exercise.

I'm planning to 'reinvent' a Huffman coding module - I'll learn heaps about the algorithm, and there is plenty of scope for 'improving' it via speed improvement with C and XS, different dictionaries of symbol frequencies, different style interfaces(oo/functional/tied), Apache modules to acts as a deflate/inflate filters, SOAP/.NET interfaces, etc etc

In fact one could use a problem like this to compare the subjective ease/power qualities of a language - how hard is it to do in Perl/Python/LISP/C/.NET/Ruby/BF etc

+++++++++++++++++
#!/usr/bin/perl
use warnings;use strict;use brain;