in reply to Split with consecutive delimeters

I do not understand your requirement. Using a different delimiter might be more instructive:
ab | | c ^ | | only one empty member

If you want to replace each empty element with two empty elements, just try

map length($_) ? $_ : ($_, $_), split /:/, 'ab::c'
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ