#! /usr/local/bin/perl -w

use strict;
use lib qw(blib/arch blib/lib);

use BSD::Sysctl 'sysctl';

my $iter = BSD::Sysctl->iterator( shift );
while (my $x = $iter->next) {
    my $val = sysctl($x);
    if (!defined $val) {
        $val = '<undef>';
    }
    elsif (ref $val eq 'HASH') {
        $val = "{\n  "
            . join( "\n  ", map { "$_ => $val->{$_}" } sort keys %$val )
            . "\n}"
        ;
    }
    elsif (ref $val eq 'ARRAY') {
        $val = "[@$val]";
    }
    print "$x: $val\n";
}
