Я не уверен, что полностью понимаю ваш вопрос, но я подозреваю, что вы имеете в виду тот факт, что как обычные, так и глобальные ссылки начинаются с каретки (^).
Подпрограммы используют каретку, чтобы различать подпрограмму и метку в текущей подпрограмме. Например:
D COMPUTATION ; executes the COMPUTATION label in the current routine
D ^COMPUTATION ; executes the COMPUTATION routine
D SUBCOMP^COMPUTATION ; executes the SUBCOMP label in the COMPUTATION routine.
Для переменных каретка указывает, что это глобальная переменная, а не локальная переменная. Это тот случай, когда вы используете «голые» ссылки или нет (именно здесь может потребоваться более четкое разъяснение вашего вопроса, поскольку, насколько я понимаю, ссылка «голая» не имеет значения). Разница, конечно, в том, что с голой ссылкой вы можете отбросить имя переменной и все, кроме последнего индекса глобальной переменной. Например:
S ^MYGLOB(1,1)="one"
S ^MYGLOB(1,2)="two"
эквивалентно
S ^MYGLOB(1,1)="one"
S ^(2)="two" ;naked, ewww
Все, что сказано, я бы настоятельно рекомендовал не использовать голые ссылки. Они предназначены для экономии времени при вводе кода из командной строки, но очень опасны в коде, который необходимо поддерживать. Например, если ссылка на ^ OTHERGLOB была вставлена между двумя строками кода выше, ^ (2) теперь будет ссылаться на ^ OTHERGLOB (2), а не на ^ MYGLOB (1,2). Не говоря уже о том, что читать тяжело.