use Text::ParseWords (); my %_const_handlers = ( q => sub { if ($_[0] =~ m/^\([ \.\d\w]*\)$/) { my $str = substr $_[0], 1, length ($_[0]) - 2; my @elems = Text::ParseWords::quotewords (qr/\s+/, 0, $str); # { local $"="+"; print "[@elems]\n"; } if (defined $elems[1] and $elems[1] eq "..") { @elems = $elems[0] .. $elems[2]; } return ->new (@elems) || $_[1]; } else { return $_[1]; } }, ); sub import { overload::constant %_const_handlers; }