in reply to Regex and splitting

ofcourse using regex alone you can get your desired output, but since you said you are studying regular expression with splitting, maybe the code below could help:

use warnings; use strict; my %hash; while(<DATA>){ chomp; my ($dns)=grep $_=>split/^.+?:/,$_; my ($ip,$dns1)=split/,/,$dns; $hash{$dns1}=$ip; } print $hash{$_},$/ foreach keys %hash; __DATA__ host1 dns:192.168.243.30,asdf host2 dns:192.168.243.1,qwert

You could check perldoc -f split for details
Hope this helps