---
name: "Parse::DMIDecode"
section: "3pm"
platform: "linux"
package: "libparse-dmidecode-perl"
version: "0.03-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Parse::DMIDecode"
---

# Parse::DMIDecode(3pm)

Interface to SMBIOS using dmidecode

## NAME

Parse::DMIDecode - Interface to SMBIOS 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.

## METHODS

### new

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

This is the constructor method to create a Parse::DMIDeocde object. It accepts two optional arguments; `"dmidecode"` and `"nowarnings"`.

The `"dmidecode"` argument specifies the full path and filename of the *dmodecode* command that should used by the `"probe"` method.

The `"nowarnings"` argument instructs Parse::DMIDecode not to emit any parser warnings.

### probe

```
 $decoder->probe;
```

This method executes an active probe to gather information using the *dmidecode* command. It does not accept any arguments.

### parse

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

This method is a passive alternative to the `"probe"` method. It accepts a single string argument which should contain output from the *dmidecode* command, which it will parse.

### 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
         );
 }
```

See Parse::DMIDecode::Handle for accessor method documentation for handle objects.

### smbios\_version

```
 my $smbios_version = $decoder->smbios_version;
```

Returns the SMBIOS version number.

### 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

Parse::DMIDecode::Handle, Parse::DMIDecode::Constants, Parse::DMIDecode::Examples, examples/\*.pl, \<http://search.cpan.org/src/NICOLAW/Parse-DMIDecode-0.03/examples/\>, \<http://www.nongnu.org/dmidecode/\>, \<http://linux.dell.com/libsmbios/\>, \<http://sourceforge.net/projects/x86info/\>, \<http://www.dmtf.org/standards/smbios\>, [**biosdecode**(8)](/biosdecode/8.md), [**dmidecode**(8)](/dmidecode/8.md), [**vpddecode**(8)](/vpddecode/8.md)

## VERSION

`$Id:` DMIDecode.pm 1004 2007-03-11 12:43:25Z 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,2007 Nicola Worthington.

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

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