in reply to Split Operation

This looks like a job for Text::Balanced!

#!/usr/bin/perl use strict; use warnings; use Text::Balanced qw/extract_bracketed extract_multiple/; my $test="[a,b],c,'d',[e,[f,g,h,[i,j],k,l],m,n],o,p"; my @split = grep { $_ ne ',' } extract_multiple( $test, [ \&extract_bracketed, qr/[^\[,]+/, ',', ] ); print "@split\n";

Note: The default extract_bracketed will also extract (), {}, and <> delimited strings. Replace \&extract_bracketed with sub { extract_bracketed($_[0], '[]') } to restrict to [] delimited chunks.

Good Day,
    Dean