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

Vote on this poll

Yes
[bar] 29/8%
No
[bar] 49/14%
Working on one
[bar] 24/7%
Hopefully someday
[bar] 171/48%
I'd prefer others never saw my code
[bar] 75/21%
Other
[bar] 5/1%
353 total votes
Replies are listed 'Best First'.
RE: I have contributed a module to CPAN
by mirod (Canon) on Sep 13, 2000 at 03:05 UTC

    OK, so I have contributed XML::Twig and I wished there had been an answer "I have contributed a module to CPAN but I'rather not have people look too closely at the code" ;--(

    I have found that actually few people look at the code, although it's probably because few people use the module at all. I had mostly comments (and even patches) on the documentation. The fact that the module is pre-processed and that the actual code is not in XML::Twig.pm probably does not help either.

      I'm using XML::Twig at work...maybe I will have to go look at the source, Thx Mud
RE: I have contributed a module to CPAN
by ZZamboni (Curate) on Sep 13, 2000 at 02:59 UTC
    Although I haven't contributed to CPAN (yet), I think it would be cool if CPAN-contributing monks would post to this thread which modules they have contributed. Or at least the ones they want people to know about :-) Any takers?

    --ZZamboni

      Class::Translucent is the only one so far, but I'm getting ready to foist lots more on the unsuspecting community.

      Muahaha, or something.

      I contributed Algorithm::MDiff. Not a terribly difficult module. The hard part was reading all the FAQs and things to get the login id--pretty sure the problem there was all the heavy drikin' ;).
        The readme for Array::Compare is sparse. I was trying to look at the CPAN readme for it this morning and did not see a list of methods within the module.

        It still is not clear to me whether or not it can show which elements are in one array that are not in another.

      Here's my list: Log::Dispatch - Set up logging to one or more outputs, each of which can have their own filters. Devel::StackTrace - OO stack traces mostly written for ... Exception::Class - Allows you to declare arbitrarily complex exception class hierarchies in your modules. Also has a base exception object implementation. Thesaurus - Maintains relations between scalars so you can say that 'cat', 'kitten', & 'kitty' are related. Then later, if you give it 'cat' it'll give you all three. Includes persistence subclasses for saving to a DBM or a File. HTML::Mason - I'm on the core team for this one. This is more of an app than a module, though. I'm considering writing a Tie::RestrictedHash to sort of emulate what you can do with a pseudo-hash but we'll see. -dave
RE: I have contributed a module to CPAN
by t0mas (Priest) on Sep 13, 2000 at 12:05 UTC
    I've only contributed by patching and adding to modules already there, but I guess thats some kind of contribution :)

    /brother t0mas
(Guildenstern) RE: I have contributed a module to CPAN
by Guildenstern (Deacon) on Sep 14, 2000 at 01:15 UTC
    I sent in Win32::SystemInfo very recently. Hopefully it'll show up in the CPAN nodelet soon. Of course, I posted it here at PerlMonks first. Lots of good feedback helped prevent me from submitting a _truly_ ugly piece of code.

    Guildenstern
    Negaterd character class uber alles!
RE: I have contributed a module to CPAN
by Adam (Vicar) on Sep 13, 2000 at 04:33 UTC
    I'm glad to see so many people voted for 'hopefully some day' instead of 'no'. Its good that people want to contribute.
      There seems to be an implicit "friendliness" to perl and the perl community. I think this is a surprisingly large part of the perl mind-set. It seems to be exuded from several sources:
      • humour in the docs/man pages
      • the non-judgemental syntax ("There's more than 1 way to do it.")
      • well-known personalities (Larry, TomC, ...)
      • helpful user community (like perlmonks, and comp.lang.perl.*)
      • The funny-looking camel theme
      • ...
      -- DouglasDD
RE: I have contributed a module to CPAN
by stephen (Priest) on Sep 15, 2000 at 22:53 UTC
    On the "What did you do" thread...

    I put in Text::Boilerplate, one of billions upon billions of templating systems. It really needs a substantial upgrade, but for where I was at the time, I'm proud of it. (Just don't look too closely at the code. *grin*)

    There's always more stuff to do for modules. For example:

    • A module to download and maintain sound files from these fun digital microcassette recorders on Linux platforms
    • A module to deal with QuarkXPress files
    • As far as I know, there are no Perl modules dealing with musical notation. Wouldn't it be great if there were a module that you could use to create files which could be printed out as scores and played back as midi or audio?

    There's no reason to worry about being overly specific; if you can think of ten other people that might use the module, it's probably worth doing. (Opinions may vary on that one.)

    stephen

RE: I have contributed a module to CPAN
by japhy (Canon) on Sep 21, 2000 at 02:46 UTC
    I own File::chmod in all its glory!

    $_="goto+F.print+chop;\n=yhpaj";F1:eval
RE: I have contributed a module to CPAN
by princepawn (Parson) on Sep 21, 2000 at 19:34 UTC
    I have contributed the following modules
  • Array::Reform --- convert 1 dimensional arrays to 2 dimensional arrays where each arrayref is of specified length. E.g.
    @x=(1,2,3,4,5,6) Array::Reform->reform(\@x,2);
    yields
    [ [ 1 , 2] , [ 3 , 4 ] , [ 5, 6] ]
  • Data::Constraint --- make constraint checking of lists of values more concise. E.g.
    if (nonzero ($value,$value2,$value3)) { ; } if (zero ($value,$value2,$value3)) { ; } # do something when pagemode i +s one in the list. if (any(map { $PAGEMODE eq $_ } ('CONFIRM_OFFER', 'VIEW_DETAILS', 'Purchase Item', 'Confir +m Counter Offer')) { handle_these_pagemodes() }
  • Date::Horoscope --- determine what Zodiac sign a certain date falls under (uses Date::Manip)
  • Date::Ordinal --- Conversion of dates to ordinal numbers and vice versa. E.g.
    use Date::Ordinal; $ord = month2ord('January'); # $ord gets 1 $mon = ord2month('1'); # $mon gets 'Januar +y' $mon = ord2month(1); # $mon gets 'Januar +y' $mon = ord2month('01'); # $mon gets 'Januar +y' $arryref = all_month_ordinations @arry = all_month_names $arryref = all_month_names_ref $arryref = all_short_month_names_ref $arryref = all_day_ordinations $arryref = all_hour_ord +inations $arryref = all_minute_ordinations $hashref = ordinatio +n_month_pair # {'01' => 'January', ... } @day = days
  • HTTP::File --- reduce CGI file uploads to 1 line. E.g.
    $file_pointer = $cgi->param('file_tag'); $file_upload = HTTP::File::upload($file_pointer,'/target-dir');
  • Locale::US --- Two letter codes for state identification and vice versa. For example, 'AL' is the code for 'Alabama'.
  • Parse::FixedDelimiter --- E.g.,
    use Parse::FixedDelimiter; $phone_number=803-781-4191; Parse::FixedDelimiter::parse($phone_number, \%moms_phone, '-', [ 'area_code', 'exchange', 'numbe +r' ]); for (keys %moms_phone) { print $_, " ", $moms_phone{$_}, $/; } # yields $moms_phone{area_code} == 803 # $moms_phone{exchange} == 781 # $moms_phone{number} == 4191
  • Parse::FixedLength parse a string containing fixed length fields into component parts. E.g.,
    use Parse::FixedLength; $phone_number=8037814191; parse_FL($phone_number, \%moms_phone, [ {'area_code' => 3}, {'exchange' => 3}, {'number' => 4} ] ); for (keys %moms_pho +ne) { print $_, " ", $moms_phone{$_}, $/; } # yields $moms_phone{area_code} == 803 # $moms_phone{exchange} == 781 # $moms_phone{number} == 4191
  • In the works unless I know of something better: a module to return the subtraction of the contents of arrays.

      In the works unless I know of something better: a module to return the subtraction of the contents of arrays.

      You mean something like:

      # "Subtract" (remove) elements of @minus from @list: my %dup; @dup{@minus}= (); @list= grep { exists $dup{$_} } @list;

      Update: Thanks to PrincePawn for noting that I left out "not" above.

              - tye (but my friends call me "Tye")
        Set::Scalar has functionality like this.. Set intersections, unions, subsets, etc.
        This looks like the intersection
        grep { not exists $dup{$_} } @list
        should be the difference.
RE: I have contributed a module to CPAN
by runrig (Abbot) on Sep 13, 2000 at 20:23 UTC
    Seems like no matter what you want to do, there's already a module to do it. Until one day, so I wrote a module to do it(Convert::TNEF). I also occasionally debug other peoples modules and occasionally even get credit for it :) Its nice when they at least mention you in the Changes file, although I think I forgot to mention the person that pointed out some bugs in my module (which inspired me to also clean it up a bit). Maybe I will next release :) If someone finds any more bugs or suggests any more changes, then I'll work them and the previous person in...
RE: I have contributed a module to CPAN
by lindex (Friar) on Sep 21, 2000 at 01:42 UTC
    I would have posted my cisco.pm (after I cleaned it up and write docs)
    But someone posted there version first, who's to say who was first :)
    Oh well I guess its back to the "come up with stuff never done before" board



    lindex
    /****************************/ jason@gost.net, wh@ckz.org http://jason.gost.net /*****************************/

View List Of Past Polls