summaryrefslogtreecommitdiffstats
path: root/INF/DSRx020.pm
diff options
context:
space:
mode:
Diffstat (limited to 'INF/DSRx020.pm')
-rw-r--r--INF/DSRx020.pm36
1 files changed, 22 insertions, 14 deletions
diff --git a/INF/DSRx020.pm b/INF/DSRx020.pm
index 591f367..d99cfad 100644
--- a/INF/DSRx020.pm
+++ b/INF/DSRx020.pm
@@ -34,8 +34,8 @@ sub trim($) {
my $s = shift;
if ( defined $s ) {
- $s =~ s/a^\s+//g;
- $s =~ s/\s+$//g;
+ $s =~ s/^[\s\t\n\r\xa0]+//s;
+ $s =~ s/[\t\n\r\s\xa0]+$//s;
}
return $s;
@@ -516,25 +516,33 @@ sub pdu_load_get($) {
my $rows = [ $table->look_down( "_tag" => 'tr' ) ];
return undef unless scalar(@$rows) > 1;
- my $r1 = [ $rows->[0]->look_down( "_tag" => 'td' ) ];
- my $r2 = [ $rows->[1]->look_down( "_tag" => 'td' ) ];
-
- for ( my $i = 0 ; $i < scalar(@$r1) ; ++$i ) {
+ my $row_data = [];
+ for my $row (@$rows) {
+ push @$row_data, [ $row->look_down( "_tag" => 'td' ) ];
+ }
- my $title = $r1->[$i];
- my $value = $r2->[$i];
+ my $top_row = shift @$row_data;
+ for ( my $i = 0 ; $i < scalar(@$top_row) ; ++$i ) {
+ my $title = $top_row->[$i];
next unless defined $title;
- next unless defined $value;
-
$title = elm_to_txt($title);
- $value = elm_to_txt($value);
-
- trim($value);
+ next unless $title =~ /current/i;
+
+ for my $row (@$row_data) {
+ my $value = $row->[$i];
+ next unless $value;
+ $value = elm_to_txt($value);
+ trim($value);
+ next unless length($value);
+ next if $value =~ /N\/A/;
+ push @$ret, sprintf( "%.2f", $value );
+ }
- push @$ret, $value . " " if $title =~ /current/i;
}
+ push @$ret, "N/A" if scalar(@$ret) == 0;
+
return join( ",", @$ret );
}