my $range = $day->[1] - ($day->[1] % 5); #### Operation `%': no method found,left argument in overloaded package XML::XPath::Literal,right argument has no overloaded magic at C:\..\xmlrecord_parse.pl line 604. #### my $range = sprintf("%f","$day->[1]") - (sprintf("% f","$day->[1]") % 5); #### [ 1-1-2004 15.0 ], [ 2-1-2004 15.5 ], [ 3-1-2004 16.5 ], [ 4-1-2004 17.0 ], [ 5-1-2004 17.5 ], [ 6-1-2004 18.0 ], [ 7-1-2004 18.5 ], [ 8-1-2004 19.0 ], [ 9-1-2004 19.5 ], [ 10-1-2004 25.0 ], [ 11-1-2004 26.5 ], [ 12-1-2004 27.5 ], [ 13-1-2004 28.0 ], [ 14-1-2004 29.5 ], [ 15-1-2004 28.0 ], [ 16-1-2004 28.8 ], #### 1-1-2004 5-1-2004 mild 10-1-2004 14-1-2004 verywarm #### 15 15.5 15.5 15 15.5 15 15.5 15 15.5 25 25.5 25.5 25 25.5 25 25.8 #### print "$first_day $day->[0] ".$ranges{$range}."\n";