in reply to array substr or what?

split (q.v.) is more versatile than you realize. In particular,

my @fields = split /\|/, $record;
will put |-delimited fields in @fields. Note that you need to escape the | because it is a regexp character.

the lowliest monk