} elsif (defined($type) && $type eq 'text') {
$smartdata->{text} = '' if !defined $smartdata->{text};
$smartdata->{text} .= "$line\n";
- # extract wearout from nvme text, allow for decimal values
- if ($line =~ m/Percentage Used:\s*(\d+(?:\.\d+)?)\%/i) {
+ # extract wearout from nvme/sas text, allow for decimal values
+ if ($line =~ m/Percentage Used(?: endurance indicator)?:\s*(\d+(?:\.\d+)?)\%/i) {
$smartdata->{wearout} = 100 - $1;
}
} elsif ($line =~ m/SMART Disabled/) {
die "disks is not a string or array reference\n";
}
# we get cciss/c0d0 but need cciss!c0d0
- map { s|cciss/|cciss!| } @$disks;
+ $_ =~ s|cciss/|cciss!| for @$disks;
$disk_regex = "(?:" . join('|', @$disks) . ")";
}