in reply to Reading from text file

#!/usr/bin/perl # http://perlmonks.org/?node_id=1211586 use strict; use warnings; $_ = do { local $/; <DATA> }; s/:\w+:/:/g; 1 while s/^(\w+):[\d:]*\K(\n.*?)^\1(:\d+)\n/$3$2/gsm; print; __DATA__ China:wd:2 Japan:wd:6 China:sg:2 Japan:sg:10 China:kng:70 Thailand:kng:6