I disagree that it's damaging to the community. While I agree with your advice to use
IO::String,
I think you are way off base telling him to keep his code to himself.
What teaches you more? Typing a
use statement or solving a problem?
Should we not know how to make a fire because we have lighters?
Furthermore, other people viewing such problems and solutions can learn from the experience as well about the way to do or not to do things.
There are numerous problems that are neatly solved with CPAN but it doesn't teach most people anything at all.
(Though it certainly makes them more productive)
It's not like there are code reviews here of modules that might expose users to the how and why of the way things are, or should be done.
If you don't feel like helping someone reinvent a wheel that's your prerogative but you have no right to tell
someone to keep it to themselves because while you contribute more than most,
it isn't your community but "our" community, and communities have a way of sorting these issues out all on their own.
Now if the discussion here was about submitting this to CPAN, then that would be a different issue. Though given different but equally well implemented ends to the same means, my preference is for all of them to be available.
There are reasons certain things get done over and over. Part of this of course is just to say you did, but often it's because the implementation
disagrees with a potential users perspective of how the problem should be solved. I tend to think of writing code as writing any literature. People have their own perspective that shapes the work.
If my perspective is different, should I do it your way because you did it first? Looking at problems from different perspectives is what got us out of the stone age.
-Lee
"To be civilized is to deny one's nature."