great explanation. Makes perfect sense now. Many thanks. On Mar 18, 2012, at 9:52 AM, Daniel Perrett <[email protected]> wrote:
> This is what looks like is happening: > > $h is the empty string. $nodata_valu is a very big number. > > ($h == $nodata_valu) generates a warning because $h is not a number, it is > the empty string. It also is false, so the 'else' is executed. > > The sprintf statement coerces $h to a number then converts that number to a > string with 2 decimal places. > > The value of the sprintf is assigned to $h. > > The debug line then prints the two scalars. > > Daniel > > [email protected] wrote: ----- > To: dancer-users <[email protected]> > From: "Mr. Puneet Kishor" > Sent by: [email protected] > Date: 03/18/2012 02:54AM > Subject: [Dancer-users] befuddling Dancer error > > I have the following code > > if (defined $h) { > $h = ($h == $nodata_valu) ? $nodata_desc : sprintf("%.2f", $h); > debug "h: $h, nodata: $nodata_valu"; > } > > which results in the following log entry > > [63130] debug @0.154003> [hit #4]h: 0.00, nodata: -3.40282346638529e+38 > > Yet,I get the following Dancer error > > Warning caught during route execution: Argument "" isn't numeric in > numeric eq (==) at > if (defined $h) { > $h = ($h == $nodata_valu) ? $nodata_desc : sprintf("%.2f", $h); > debug "h: $h, nodata: $nodata_valu"; > } > > > what gives? > > > > -- > Puneet Kishor > _______________________________________________ > Dancer-users mailing list > [email protected] > http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
_______________________________________________ Dancer-users mailing list [email protected] http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
