You could also use Text::CSV_XS. It is designed for comma seperated data, but you can set the character to be used as a seperator to what ever you want. That would even handle data like:
some field|another field|"field with | in it"|more fields
In reply to Re: Grabbing anything between pipe delimiters
by JediWizard
in thread Grabbing anything between pipe delimiters
by meisterperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |