In COBOL verwijzen we naar een veld door middel van zijn naam. Reference modification kun je omschrijven als het aanpassen (modificeren) van de verwijzing (referentie). Reference modification maakt het mogelijk een gedeelte van een veld te gebruiken. Dat doen we door op te geven bij welk teken het fragment begint en eventueel hoe lang het fragment is.
We gebruiken als voorbeeld het volgende veld:
01 lang-woord pic x(36) value "ziektekostenverzekeringsmaatschappij"
De volgende opdracht gebruikt reference modification:
display lang-woord(7:6)
De uitvoer van deze opdracht is: kosten. Van het veld lang-woord neemt de computer het fragment dat begint op positie 7. De lengte van het fragment is 6 tekens.
In het algemeen geldt het volgende. Reference modification staat tussen haakjes na de volledige veldnaam en bestaat uit twee delen die van elkaar gescheiden zijn door een dubbele punt. Elk van de delen kan een getal zijn, een variabele of een formule. Het eerste deel geeft de beginpositie aan, het tweede deel de lengte. Beide delen moeten een geheel getal opleveren dat groter is dan nul. Reference modification is toegestaan op alle plaatsen waar een alfanumeriek veld mag staan. Het fragment uit het veld wordt beschouwd als alfanumeriek, ook als het veld zelf numeriek is.
Als er geen lengte is vermeld, dan maakt de computer een fragment dat loopt vanaf de aangegeven beginpositie tot het eind van het veld. De opdracht:
display lang-woord(25:)
geeft als uitvoer: maatschappij. Vanaf positie 25 tot en met het einde van het veld. Let erop dat de lengte-aanduiding mag wegblijven, maar de dubbele punt niet. Die dubbele punt geeft aan dat het reference modification betreft. Zonder dubbele punt zou de computer menen dat een subscript is bedoeld.
Reference modification is in andere programmeertalen niet ongebruikelijk. Maar voor COBOL is het toch een vreemde eend in de statement-bijt. Deze manier van specificatie is niet erg COBOL-achtig. De gebruikelijke manier om een deel van een veld aan te geven is via de beschrijving in de data division. We kunnen een groepsveld indelen in velden en door middel van redefines zijn verschillende indelingen mogelijk. Omdat reference modification een programma moeilijk leesbaar maakt, is het verstandig er voorzichtig mee om te springen. Verduidelijk zo mogelijk het gebruik met commentaar in het programma.