#!/usr/bin/env perl -l use strict; use warnings; my @tests = qw{ one one.two one.two.three four.five.six.seven one. one-two .one .one. . .. .@. one.good.egg one.-bad-.egg }; print "'$_': ", grep(! /^\w+$/, split /\./, $_, -1) ? 'bad' : 'good' for @tests;