{ my (%hourcache,%mincache); sub D14_to_unix { my $hour = substr( $_[0], 0, 10 ); my $min = substr( $_[0], 10, 4 ); return +( $hourcache{$hour} ||= timelocal( 00, 00, substr( $hour, 8, 2 ), substr( $hour, 6, 2 ), substr( $hour, 4, 2 ) - 1, substr( $hour, 0, 4 ) - 1900 ) ) + ( $mincache{$min} ||= ( substr( $min, 0, 2 ) * 60 + substr( $min, 2, 2 ) ) ); } }