This is a simple piece of Perl I wrote to see what percentage my laptop battery was. The die needs to be more descriptive and I also need to take out the hardcoded values for a full battery, but it gets the job done faster than cat and scanning.
#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;
my $status;
open (BATT, "/proc/acpi/battery/BAT0/state") || die("Can't Open: $!");
while (<BATT>) {
if ($_ =~ /(charging state:)(\s+)(\w+)/ ) {
$status = $3;
}
if ($_ =~ /(:)(\s+)(\d*)(\s+)(mAh)/ ) {
print "\n";
my $perc = $3/2791;
printf "The battery is %s", $status;
print "\n";
printf "Battery percentage is: %.0f", $perc*100;
print "\n-----------------------------\n\n";
} else {
print "Incorrect Format";
}
}
close BATT;