<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Helvetica, Arial, sans-serif">Greetings all,<br>
      <br>
      I forgot to mention this: When you're done, email me your code
      directly. I'll do a code review and offer feedback.<br>
      <br>
      Gryphon<br>
      <br>
      <br>
    </font>
    <div class="moz-cite-prefix">On 9/25/2012 10:38 AM, Gryphon Shafer
      wrote:<br>
    </div>
    <blockquote cite="mid:5061EC30.6050508@gryphonshafer.com"
      type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <font face="Helvetica, Arial, sans-serif">Greetings all,<br>
        <br>
        For folks who are getting toward the end of Learning Perl and
        have a comfortable level of vi (since it takes months to be a
        power vi user), here's the next step: Write an MP3 library
        engine.<br>
        <br>
        One of the great power features of Perl is that 90% of most
        programs have already been written. What I mean by that is that
        most of the complexity in most programs has already been written
        in the form of code libraries, which are hosted on CPAN (the
        Comprehensive Perl Archive Network). When beginning any Perl
        program, it's useful to check CPAN (</font><font
        face="Helvetica, Arial, sans-serif">search.cpan.org) </font><font
        face="Helvetica, Arial, sans-serif">for libraries that will
        help.<br>
        <br>
        Installing CPAN libraries on your VM is fairly straight forward,
        but can be made even easier by installing "cpanminus". Here's
        how you do that:<br>
        <br>
        cpan -i App::</font><font face="Helvetica, Arial, sans-serif">cpanminus</font><br>
      <font face="Helvetica, Arial, sans-serif"><br>
        Read more about what cpanminus is here:<br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://search.cpan.org/%7Emiyagawa/App-cpanminus-1.5018/lib/App/cpanminus.pm">http://search.cpan.org/~miyagawa/App-cpanminus-1.5018/lib/App/cpanminus.pm</a><br>
        <br>
        With that done, do a search on CPAN for "MP3", and you'll get a
        lengthy list of libraries of various value. Keep in mind that
        while CPAN is awesome, most of the code on CPAN isn't. It's just
        that the 10% of CPAN that isn't horrible is extremely helpful
        and powerful. Take a look at module ratings (the stars) to learn
        what the community thinks of some modules.<br>
        <br>
        Your mission, should you choose to accept it, is to build an MP3
        library engine. Grab some MP3s and throw them into a directory
        structure. You can organize them however you'd like, just as
        long as they're in a directory structure of some kind. Then
        write a Perl program that will read through all the files and
        build an index of their titles, artists, lengths, and whatever
        else you find interesting. Present a command-line interface that
        will allow a user running your program to search for MP3s based
        on title (including wildcard searching), artists, lengths, and
        so forth.<br>
        <br>
        While you're doing this, here is a helpful resource with a lot
        of examples of how to solve problems that you might encounter
        along the way:<br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://goldenguru.com/docman/OReilly/Perl_Bookshelf_v4/cook/index.htm">http://goldenguru.com/docman/OReilly/Perl_Bookshelf_v4/cook/index.htm</a><br>
        <br>
        Good luck.<br>
        <br>
        Gryphon<br>
        <br>
        <br>
      </font> </blockquote>
    <br>
  </body>
</html>