Thanks for this code.

However when I try to compile the code I get errors with the "labels"

Loading file redirectio.cls as udl
Compiling class utility.redirectio
Compiling routine utility.redirectio.1
ERROR: utility.redirectio.cls(Test+31) #1026: Invalid command : 'rchr(time)' : Offset:6 [zTest+25^utility.redirectio.1]
 TEXT:   rchr(time)  quit "a"
ERROR: utility.redirectio.cls(Test+33) #1026: Invalid command : 'rstr(len,time)' : Offset:6 [zTest+27^utility.redirectio.1]
 TEXT:   rstr(len,time) quit "xyz"
ERROR: utility.redirectio.cls(Test+35) #1026: Invalid command : 'wchr(s)' : Offset:6 [zTest+29^utility.redirectio.1]
 TEXT:   wchr(s)      do output($char(s))  quit
ERROR: utility.redirectio.cls(Test+37) #1026: Invalid command : 'wff()' : Offset:5 [zTest+31^utility.redirectio.1]
 TEXT:   wff()        do output($char(12))  quit
ERROR: utility.redirectio.cls(Test+39) #1026: Invalid command : 'wnl()' : Offset:5 [zTest+33^utility.redirectio.1]
 TEXT:   wnl()        do output($char(13,10))  quit
ERROR: utility.redirectio.cls(Test+41) #1026: Invalid command : 'wstr(s)' : Offset:6 [zTest+35^utility.redirectio.1]
 TEXT:   wstr(s)      do output(s)  quit
ERROR: utility.redirectio.cls(Test+43) #1026: Invalid command : 'wtab(s)' : Offset:6 [zTest+37^utility.redirectio.1]
 TEXT:   wtab(s)      do output($char(9))  quit
ERROR: utility.redirectio.cls(Test+46) #1026: Invalid command : 'output(s)' : Offset:8 [zTest+40^utility.redirectio.1]
 TEXT:   output(s)    set str=str_s   quit
Detected 8 errors during load.

How can this be fixed?

Thanks. That seems to have done the trick.
pri_ref.value
has
'\x1c\x01SERVERA.FOO.BAR.ORG/STAGE\x14\x01SERVERA.foo.bar.org|2188\t\x01Primary\x08\x01Active\x15\x01172.31.33.69|1972\x15\x01SERVERA.foo.bar.org|1972'

The field separator appears to be \x01. However there is smattering of 
\x1c
\x14
\t
\x08
\x15

Not sure why there are these hex characters?