c:\@Work\Perl\monks>perl -wMstrict -le "my @strings = ( 'ABC;123;;;;;HELLO;', 'DEF;345;;BANANA;12DEF;44,55;4*12;;;;;;;;3;', ); ;; for my $s (@strings) { printf qq{'$s' \n>}; my @items = split m{;}, $s, -1; $_ = qq{\"$_\"} for @items[ 1 .. ( $#items - 1 ) ]; print join(q{;}, @items), qq{< \n}; } " 'ABC;123;;;;;HELLO;' >ABC;"123";"";"";"";"";"HELLO";< 'DEF;345;;BANANA;12DEF;44,55;4*12;;;;;;;;3;' >DEF;"345";"";"BANANA";"12DEF";"44,55";"4*12";"";"";"";"";"";"";"";"3";<