in reply to grep fields
@rec = split /:/ or next;
Because it looks like you think that your split won't work, or will return zero or something if there aren't any colons in the string.
It will. It will split to an array with one item.
($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss') =~y~b-v~a-z~s; print
|
|---|