Subject: | avg (field) migth return undef |
http://www.perlmonks.org/?node_id=1072849
$ cat pm1072615.csv
Month,Zone,Replicate,SpeciesA,SpeciesB,SpeciesC
Sept,1,1,5,10,15
Sept,1,2,0,5,10
Sept,1,3,5,0,5
Sept,2,1,5,5,5
Sept,2,2,10,15,10
Sept,2,3,0,0,5
$ cat pm1072615.pl
#!/usr/bin/perl
use 5.14.2;
use warnings;
use DBI;
my $dbh = DBI->connect ("dbi:CSV:", undef, undef, {
f_ext => ".csv/r",
});
my $sth = $dbh->prepare (qq;
select month, zone, replicate, avg (speciesa)
from pm1072615
group by month,zone, replicate;
);
$sth->execute;
while (my $row = $sth->fetch) {
printf "%-5s %3d %3d %8.5f\n", @$row;
}
$ perl pm1072615.pl
Sept 2 1 5.00000
Sept 2 2 10.00000
Sept 1 1 5.00000
Sept 1 3 5.00000
Use of uninitialized value in printf at pm1072615.pl line 19.
Sept 1 2 0.00000
Use of uninitialized value in printf at pm1072615.pl line 19.
Sept 2 3 0.00000
$
With a dump of $row before the print
$ perl pm1072615.pl
[ 'Sept',
2,
1,
5
]
Sept 2 1 5.00000
[ 'Sept',
2,
2,
10
]
Sept 2 2 10.00000
[ 'Sept',
1,
1,
5
]
Sept 1 1 5.00000
[ 'Sept',
1,
3,
5
]
Sept 1 3 5.00000
[ 'Sept',
1,
2,
undef
]
Use of uninitialized value in printf at pm1072615.pl line 25.
Sept 1 2 0.00000
[ 'Sept',
2,
3,
undef
]