in reply to splitting and coloring

Here's a solution using substr for the sake of variety.

use strict; use warnings; my $string = q{MKTVEQTSPTMTSEKARWIYQKMVEIRMFEDRVHDIFSKGEIPGFVHLYAGEEAI +AVGLCAHLDHNDYITSTHRGHGHCIAKGCELDGMMAEIYGKSTGLCKGKGGSMHIADLDRGMLGANGIV +GGGFTLAAGAALTAKFKQTGGVAVCFFGDGANNQGTFHEGINLAAIWDLPVVFVAENNGYGEATPFHYA +SACEQITDRAKGYNIPGVKVDGKDVVAVYEVAREAVERARRGEGPTLIECITYRNYGHFEGDAQTYKTG +REKEEHTEERDAITLFEKYALSNNLLTEEAIQTVRHEVEQSVDRAVDFANASDYPQPEELLTDVYVSYD +HEGRNG}; my $newString = q{}; my $count = 0; while (length $string >= 10) { $count += 10; $newString .= substr $string, 0, 10, q{}; $newString .= $count % 50 ? q{ } : qq{\n}; } $newString .= qq{$string\n}; print $newString;

and the output

MKTVEQTSPT MTSEKARWIY QKMVEIRMFE DRVHDIFSKG EIPGFVHLYA GEEAIAVGLC AHLDHNDYIT STHRGHGHCI AKGCELDGMM AEIYGKSTGL CKGKGGSMHI ADLDRGMLGA NGIVGGGFTL AAGAALTAKF KQTGGVAVCF FGDGANNQGT FHEGINLAAI WDLPVVFVAE NNGYGEATPF HYASACEQIT DRAKGYNIPG VKVDGKDVVA VYEVAREAVE RARRGEGPTL IECITYRNYG HFEGDAQTYK TGREKEEHTE ERDAITLFEK YALSNNLLTE EAIQTVRHEV EQSVDRAVDF ANASDYPQPE ELLTDVYVSY DHEGRNG

I hope this is of interest.

Cheers,

JohnGG

Update: Amended code to remove length test in last .= assignment as it would fail to append a newline if the string length was a multiple of 10 but not of 50. Original line

$newString .= qq{$string\n} if length $string;