Когда stride
равно 1 (более типичное с сверткой, чем объединение), мы можем думать о следующем различии:
"SAME"
: размер вывода совпадает с размером ввода. Для этого требуется, чтобы окно фильтра проскальзывало внешнюю карту ввода, следовательно, необходимо проложить. "VALID"
: окно фильтра остается в допустимой позиции внутри карты ввода, поэтому размер вывода уменьшается на filter_size - 1
. Не выполняется прокладка. Нет никакого определенного значения к использованию __ в имени переменной жемчуга. Это - вероятное предпочтение программиста, особенно в прецеденте, на который Вы сослались в своем вопросе. Вы видите больше информации о переменной жемчуга, называющей здесь.
Как в большей части подчеркивания языков просто часть идентификатора; никакое особое значение.
Но действительно ли Вы уверены, что это - Perl? На переменных нет никаких символов. Можно ли отправить больше контекста?
Ответ Mark's, конечно, корректен, он не имеет никакого особого значения.
Но я хочу отметить, что Ваш пример не похож на Perl вообще. Переменные Perl не являются barewords. У них есть символы, как Вы будете видеть из ссылок выше. И Perl не имеет "функций", он имеет подпрограммы.
Таким образом, может быть некоторый беспорядок, о котором языке мы говорим о.
Я - почти бесспорный arg2 __, размер является просто названием переменной.
Что касается интерпретатора, подчеркивание является просто другим символом, позволенным в идентификаторах. Это может использоваться в качестве альтернативы конкатенации или Camel-регистру для формирования идентификаторов многословных.
Начальный символ подчеркивания часто используется, чтобы означать, что идентификатор для локального использования только, например, для неэкспортируемых частей модуля. Это - просто конвенция; интерпретатор не заботится.
В контексте Вашего вопроса двойное подчеркивание не имеет никакого программного значения. Двойные подчеркивания действительно означают что-то специальное для ограниченного количества значений в Perl, прежде всего __FILE__
& __LINE__
. Это специальные литералы, которые не снабжаются префиксом символ ($
, %
или @
) и только интерполированы за пределами кавычек. Они содержат полный путь и название в настоящее время выполняющегося файла и строки, которая выполняется. Посмотрите раздел по 'Специальным Литералам' в perldata или этом сообщении на Монахах Perl
Вам нужно будет сообщить интерпретатору, что «$ arg2» - это имя переменной. а не "$ arg2__size". Для этого вам нужно будет использовать круглые скобки. (Это использование аналогично тому, что используется в оболочке).
Это должно работать MyFunction ($ arg1, $ {arg2} __ size, $ arg3)
- Бину