The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history:

0.8 - Added port_found call to port() routine as <addport>
      was removed from nmap version 3.75
0.7a
   - Updated README file with correct information
   - Updated tests so tests that require nmap binary get
     skipped (instead of failing) if nmap binary not found
   - Updated version in lib/Nmap/Scanner.pm to .7

0.7

   Will Saxon (WillS --at-- housing dot ufl DOT edu)
   - Uninitialized value bug in XML.pm, PORT_COUNT attribute.

   Mario Manno (mm AT koeln dot ccc . de)
   - Many XML fixes to make Nmap::Scanner XML output comply with nmap DTD
   - Code suggestion to separate method that reads nmap scan
     from file out of main scan() method.
   - Added Nmap::Scanner::OS::Class for use with nmap OS guess output
     to account for multiple OS class guesses that may be generated
     by using -O switch.
   - Patched source to deal with 'defined but false' values for XML
     output where class atributes have not been populated.
   - Contributed example program that will perform an nmap scan and
     generate graphs and charts showing the results of the scan
     (see examples/bannerscan/ directory).
   - Fix all nmap class names and attributes so they match the names
     nmap uses in it's XML output.
   - Alter examples to use new attribute / method names

   Max Schubert
   - Code clean up after applying patches from Mario.
   - Perldoc for new methods added by Mario, clean up of some
     existing perldoc.
   - Clean up of die() calls in scan_from_file method to make
     sure messages are clear to user.
   - Added code to handle <hostnames> child of <host> element and multiple 
     <hostname> elements, along with Hostname class.
   - Added stub hostnames and ports routines to Nmap::Scanner::Backend::XML 
     so that running in debug mode does not show unhandled XML warnings.
   - Corrected smurf routine mapping so that smurf XML element calls
     smurf() routine (instead of hostname()) in Nmap::Scanner::Backend::XML.
   - Changed XML for error output so there are two lines; one is nmap output
     error string, the other is perl error ($@) as eval{} will catch perl
     runtime errors too.
   - Altered examples/osguess.pl to work with new module/class names.
   - Add code to handle multiple OS guess ports (Bug 906269)
   - Alter examples to use new attribute / method names
   - Alter tests to use new attribute / method names

0.6.1
    - Set up mailing list and fixed link to it in README file .. thanks to
          Andrew Thornton (ThorntonA /AT/ nv -dot- doe -dot- gov for pointing
                        out the bad URL in the file.
    - David Klann grunch _AHT_ klann daw-T cx -- patch to 
      Nmap/Scanner/Scanner.pm to properly anchor nmap binary search in
      _find_nmap routine.
0.6 
    - Jon Amundsen (jamundsen - at - jamundsen dot dydns -dot- org).  
        * Fix for path with spaces and Win32 (cygwin) nmap search in PATH by 
          Jon Amundsen
    - Anthony Persaud (Anthony_Persaud -at- cargill dot com)
        * Tell users defaults are being used and what they are for example 
          scripts
        * Return $self for object chaining where possible in 
          Nmap::Scanner::Scanner
        * Make add_* methods and delete* methods take arrays of args.
        * Add open_nmap() method to Nmap::Scanner::Scanner to allow user to just
          use Nmap::Scanner::Scanner as front end option processor .. this 
          method returns the pid of the newly opened nmap process, and the 
          reader, writer, and error filehandle attached to the nmap pipe; 
          uses IPC::Open3.
    - Add support for -sV switch:
        * version_scan() switch in Nmap::Scanner::Scanner
        * Add mutators for version, product, and extrainfo to 
          Nmap::Scanner::Service
    - Jasmin L<E9>vesque (jlevesque -At- crosemont.qc _DOT_ ca)
        * Add support for parsing/outputting smurf detection.
    - Change process() method of Nmap::Scanner::Backend::Processor to 
      start_nmap().  This method just opens a pipe to nmap; it returns the 
      pid, reader, writer and error filehandles to the caller.  Caller is 
      responsible for processing errors from nmap.  I changed this so that 
      the backend-processor could produce an error message in the appropriate 
      format.
0.5
    - Changed to using the XML output format from nmap.
    - Changed object model to match the XML output.
    - Added scan($options) so that users don't have to learn MY method names
      just to use the module set.
    - Added more examples.
    - Eliminated all "normal" output processors and the Factory sub-package, as
      it is not needed anymore.
    - Eliminated Protocol and ProtocolList models as XML output defines 
      protocols as ports of type IP.
    - Changed tests to ONLY use tcp connect scans so we don't have install 
      problems for non-root users (reported to me by the CPAN testers .. 
      thanks!)
    - Eliminated all Nmap::Scanner::Util modules except BannerScanner .. 
      moved others into examples/ as they really aren't core.
0.2   
0.01  -- February, 2002
	- First attempt at upload and release.