COBOLでは、データ名をプログラム内で複製することができ、修飾と呼ばれるプロセスを通じてデータ名の参照を一意にするという方法によって、データ名への参照行うことができる。
動作中の修飾を確認するには、COBOLプログラムで定義された2つのデータレコードの、次のようなセグメントを確認する:
01 EMPLOYEE.
05 MAILING-ADDRESS.
10 STREET PIC X(35).
10 CITY PIC X(15).
10 STATE PIC X(2).
10 ZIP-CODE.
15 ZIP-CODE-5 PIC 9(5).
15 FILLER PIC X(4).
01 CUSTOMER.
05 MAILING-ADDRESS.
10 STREET PIC X(35).
10 CITY PIC X(15).
10 STATE PIC X(2).
10 ZIP-CODE.
15 ZIP-CODE-5 PIC 9(5).
15 FILLER PIC X(4).
それでは、従業員の輸送先住所のCITYの部分を「Philadelphia」に設定してみる。明らかにコンパイラは、参照している2つのCITY項目のどちらかを判別できなくなるため、以下の例は機能しない:
MOVE “Philadelphia” TO CITY.
この問題を解決するために、CITYの参照を次のように修飾できる。
MOVE “Philadelphia” TO CITY OF MAILING-ADDRESS.
残念ながら、どのCITYが参照されているかを具体的に判別するにはまだ不十分である。特定のCITYを正確に判別するには、次のようにコーディングする必要がある。
MOVE “Philadelphia” TO CITY OF MAILING-ADDRESS OF EMPLOYEE.
これによって、どのCITYが変更されているかについての混乱が生じることはなくなる。しかしもっと簡単な記述にすることもできる。COBOLでは中間の修飾を省略できるため、以下のようなコーディングが可能である。
MOVE “Philadelphia” TO CITY OF EMPLOYEE.
テーブルへの参照を修飾する場合は次のように記述する。
一意名-1 OF 一意名-2(添え字・・・)
予約語の「IN」は「OF」の代わりとして使うことができる。