in reply to string format validation

This smells like homework. It's polite if that's the case to say so and the monks can give guidance instead of an answer to a homework problem. I'll give you the benefit of the doubt, though.

while ( <> ) { m{ name:[\w\.\-\s]+ , version:(?:\+|-)?\d*\.?\d* , date:\d{2}/\d{2}/\d{2} }x or print "Does not match on line $..\n"; }

You can check out perlre (or just perldoc perlre on must Unixy-type OSes) to find more information on what the different parts of that mean.