use Text::Wrap qw(wrap); my @parts=do { local $Text::Wrap::columns=45; local $Text::Wrap::huge='overflow'; local $Text::Wrap::separator=",\n"; local $Text::Wrap::break=qr/\s*,\s*/; split /\n/, wrap('','',$string); };