in reply to I thought I understood split...

I think you are getting confused between split and capturing from regular expressions. For example, the code:

($year,$mon,$day,$hour,$min)= $date =~ /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/;

does what I think you intend. Your issue with split comes from:

If the PATTERN contains parentheses, additional list elements are created from each matching substring in the delimiter.

Your split is actually returning ("", 2010, "04", "06", 17, 49) because the split term is your expression, similar to @array = split /x/, "x";