$b = "0|aa aa|1998|aaa a|a aaa|10|aa a aa"; @a = ($b =~ /(\|[\w\s]+){2}/); use Data::Dumper; print Dumper(\@a);