You can manipulate data items in detail in two ways:
In general, using STRING is easier to read and implement. However, it can be resource-intensive, particularly if used many times in a program. You can use STRING in programs that do not incur a lot of overhead for other reasons, such as significant file I/O.
Reference modification is more efficient, but can lead to code that is more difficult to read and maintain. It is a way to improve performance in programs that use STRING heavily and are running slowly or growing too large.
For example, the following two statements are equivalent. In both examples, street-address is 25 bytes long:
STRING street-address DELIMITED BY SIZE INTO print-rec WITH POINTER num-char MOVE street-address TO print-rec (num-char: 25)