((defined($_->[0]) && $_->[0] =~ m/^\d+$/) ? $_->[0] : 0)
Am I correct if I assume that here $_ is defined as 'one single digit or maybe a few digits (d+, no spaces and stuff like that in between the digits) and then if this is not the case it should be a 0 (zero)?Almost. It means that $_->[0] is
$ perl use strict; use warnings; use Data::Table; my $t = new Data::Table([ [ 1, 2, 3 ], [ 10, 20, " " ] ], [ 'A', 'B' ] +, 1); # create emtpy column my @newCol = (); $newCol[ $t->nofRow - 1 ] = undef; $t->addCol(\@newCol, 'adding_up'); # Return input if input is an integer, otherwise zero sub to_int_or_zero { my $value = shift; if (defined($value) && $value =~ m/^\d+$/) { return $value; } else { return 0; } } # Put the formula in the empty column $t->colsMap( sub { $_->[2] = to_int_or_zero($_->[0]) + to_int_or_zero($_->[1]); } ); print $t->csv; __END__ A,B,adding_up 1,10,11 2,20,22 3, ,3
In reply to Re^2: Data::Table - empty values - avoid warnings
by andreas1234567
in thread Data::Table - empty values - avoid warnings
by GertMT
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |