package Acpi::Battery::Values;
use Acpi::Arxiu; # Reads the content of the file
use Moose;
has 'directory' => (
is => "ro",
isa => "Str",
);
my $dir = "/sys/class/power_supply/BAT1/uevent";
my $object = Acpi::Arxiu->new(filename => "$dir");
my $content = $object->content;
my %value = $content =~ /^POWER_SUPPLY_(\w+)=(.+)$/mg;
foreach (keys %value) {
has lc($_) => (
is => "ro",
default => $value{$_},
);
}
1;
####
use FindBin qw($Bin);
use lib "$Bin/lib";
use strict;
use warnings;
use utf8;
use Acpi::Battery::Values;
use Moose;
my $a = Acpi::Battery::Values->new(directory => "/sys/class/power_supply/BAT1/uevent");
my $b = $a->model_name;
print "$b \n";
my $meta = Class::MOP::Class->initialize("Acpi::Battery::Values");
for my $attr ( $meta->get_all_attributes ) {
my $an = $attr->name;
my $value = $a->$an;
print "$an = $value \n";
}
####
perl Values.pl
G71C000AH310
serial_number = 0000000288
power_now = 0
status = Unknown
directory = /sys/class/power_supply/BAT1/uevent
model_name = G71C000AH310
cycle_count = 0
energy_full_design = 54540000
name = BAT1
energy_full = 43038000
energy_now = 45269000
capacity = 105
voltage_min_design = 10800000
technology = Li-ion
present = 1
voltage_now = 11360000