in reply to surprised by split

scain is correct - you need to escape the pipe. Also, you need to use single quotes instead of double quotes:
my $line = '192.168.0.1|run|C:\run.com|';
to keep that \r from being interpolated (or you could escape it as well).

jeffa