2015-11-25 11 views
1

Я хочу добавить значения в свой ARGS, прежде чем передать это как параметр в вызове переадресации.Добавление значений в ARGS в perl mason

Я попытался

%ARGS{session-id} = 'value1'; 

дает синтаксическую ошибку. Не могли бы вы предложить сразу. А ключи от дефиса в названии не допускаются? Если нет, то как я могу передать это моему вызову переадресации, поскольку компонент, к которому я перенаправляю, ожидает «session-id» из% ARGS.

+0

Спасибо, что ответили. Это дает синтаксическую ошибку. – Andy897

+2

Вы, вероятно, должны уделять больше внимания, задавая вопросы в будущем; фрагмент кода, который вы предоставили, является оператором присваивания Perl, и это, вероятно, поможет прояснить, показываете ли вы, как вы пытаетесь поместить его в шаблон Mason. Кроме того, есть, вероятно, более простой способ сделать то, что вы делаете, но мне нужно будет увидеть контекст - и как вы собираетесь использовать «% ARGS» после запуска задания - чтобы предложить это. –

ответ

2

Использование

$ARGS{'session-id'} = 'value1'; 

session-id не является допустимым идентификатором в Perl; хеш-ключи могут использоваться только , если они являются действительными идентификаторами.

Кроме того, используйте $ в качестве сигара (символ отмены ссылки перед именем переменной) при доступе к одному элементу хэша; @ при доступе к нескольким элементам хэша; и % только при доступе ко всему хэшу (или в Perl 5.20 и выше при доступе к обеим ключам и значениям части хэша).