I agree with the split solution. To make it a little more robust, I'd make spaces around "
|" optional (instead of requiring at least one on each side), and give split a limit of 2, so that the text can be allowed to contain "
|". Thus:
my($ip, $text) = split /\s*\|\s*/, $_, 2;
Anno