NAME
    Parse::DMIDecode - Interface to SMBIOS under Linux using dmidecode

SYNOPSIS
     use strict;
     use Parse::DMIDecode ();
     
 my $decoder = new Parse::DMIDecode;
     $decoder->probe; # Actively probe using dmidecode
      
 # Manually supply your own dmidecode output to be parsed
     # $decoder->parse(qx(sudo /usr/sbin/dmidecode));
      
 printf("System: %s, %s",
             $decoder->keyword("system-manufacturer"),
             $decoder->keyword("system-product-name"),
         );

DESCRIPTION
    This module provides an OO interface to SMBIOS information through the
    *dmidecode* command which is known to work under a number of Linux, BSD
    and BeOS variants.

    This module is still actively under development, is no not yet feature
    complete and still needs to be fully documented. There is a possibility
    accessor method names may change before the final release.

METHODS
  new
     my $decoder = Parse::DMIDecode->new(
                         dmidecode => "/usr/sbin/dmidecode"),
                         nowarnings => 1
                     );

  probe
     $decoder->probe;

  parse
     my $raw = qx(sudo /usr/sbin/dmidecode);
     $decoder->prase($raw);

  keyword
     my $serial_number = $decoder->keyword("system-serial-number");

  keywords
     my @keywords = $decoder->keywords;
     my @bios_keywords = $decoder->keywords("bios");
     
 for my $keyword (@bios_keywords) {
         printf("%s => %s\n",
                 $keyword,
                 $decoder->keyword($keyword)
             );
     }

  handle_addresses
     my @addresses = $decoder->handle_addresses;

  get_handles
     use Parse::DMIDecode::Constants qw(@TYPES);
     
 # Available groups to query: bios, system, baseboard,
     #    chassis, processor, memory, cache, connector, slot
     for my $handle ($decoder->get_handles( group => "memory" )) {
         printf(">> Found handle at %s (%s):\n%s\n",
                 $handle->address,
                 $TYPES[$handle->dmitype],
                 $handle->raw
             );
     }

  smbios_version
     my $smbios_version = $decoder->smbios_version;

  dmidecode_version
     my $dmidecode_version = $decoder->dmidecode_version;

    Returns the version number of the copy of *dmidecode* that was used to
    create the source data that was parsed. This value may not be available
    when using older versions of *dmidecode*.

  table_location
     my $memory_address = $decoder->table_location;

  structures
     my $total_structures = $decoder->structures;

SEE ALSO
    examples/*.pl, <http://www.nongnu.org/dmidecode/>,
    <http://linux.dell.com/libsmbios/>,
    <http://sourceforge.net/projects/x86info/>,
    <http://www.dmtf.org/standards/smbios>, biosdecode(8), dmidecode(8),
    vpddecode(8)

VERSION
    $Id: DMIDecode.pm 803 2006-10-22 11:36:22Z nicolaw $

AUTHOR
    Nicola Worthington <nicolaw@cpan.org>

    <http://perlgirl.org.uk>

    If you like this software, why not show your appreciation by sending the
    author something nice from her Amazon wishlist? (
    http://www.amazon.co.uk/gp/registry/1VZXC59ESWYK0?sort=priority )

COPYRIGHT
    Copyright 2006 Nicola Worthington.

    This software is licensed under The Apache Software License, Version
    2.0.

    <http://www.apache.org/licenses/LICENSE-2.0>

