#! perl use strict; use warnings; use Data::Dump; my $s = q[{name eq \'Apple, Tomato, Orange\'}]; if ($s =~ /^\{(\w+)\s+(\w+)\s+\\'(.*)\\'\}$/) { my @array = split /,\s*/, $3; print "name: $1\n"; print "condition: $2\n"; print 'array: '; dd @array; } else { print "No match found\n"; }