sub could_be_a_host { my @a = split /\./, shift, -1; @a > 0 and not grep !/^[a-z0-9\-]+$/i, @a and not grep /^\d+$/, @a and not grep /^-|-$/, @a; } #### sub could_be_a_host { my @a = split /\./, shift, -1; return 0 unless @a; for (@a) { return 0 unless /^[a-z0-9\-]+$/i; return 0 if /^\d+$/; return 0 if /^-/; return 0 if /-$/; } 1; }