use strict; use warnings; my @data = qw/123456 abcde 10-MAY-2006/; print type($_), "\n" for @data; sub type { local $_ = shift; return 'date' if /\d\d-\D\D\D-\d\d\d\d/; return 'number' if /^\d+$/; return 'string'; }