use strict; use warnings; while(){ # split regex print join ":", grep length, split /(?:(.+?[a-z])([A-Z][^A-Z]+))/g, $_; # substition then split method s/(?<=[a-z])(?=[A-Z])/ /g; print join(":", split ' ', $_), "\n"; } __DATA__ Genetics Genomics phylogeny allele ChromosomeLocusLink geneExpression RasSignalTransductionPathway