use Data::Dump; my @a = $date =~ /^((\d{4})-(\d{2})-(\d{2})) ((..):(..):(..))$/; dd @a; __END__ ("2013-06-04", 2013, "06", "04", "01:23:00", 23, "00")