Pergunta

Eu estou tentando entender o código Perl de outra pessoa sem saber muito Perl mim. Eu aprecio sua ajuda.

Eu encontrei uma função Perl ao longo destas linhas:

MyFunction($arg1,$arg2__size,$arg3)

Existe um significado à sintaxe duplo sublinhado em $arg2, ou é apenas parte do nome do segundo argumento?

Foi útil?

Solução

Não há nenhuma específica significado para o uso de um __ dentro de um nome de variável perl. É provável preferência programador, especialmente no caso que você citou na sua pergunta. Você pode ver mais informações sobre nomenclatura de variáveis ??perl aqui .

Outras dicas

Como na maioria dos idiomas sublinhado é apenas parte de um identificador; nenhum significado especial.

Mas você tem certeza que do Perl? Não existem sigilos sobre as variáveis. você pode enviar mais contexto?

Tanto quanto o intérprete está em causa, um sublinhado é apenas mais um personagem permitido em identificadores. Ele pode ser usado como uma alternativa para concatenação ou caso camelo para formar identificadores de várias palavras.

Um sublinhado líder é muitas vezes usado para significar um identificador é só para uso local, por exemplo. para partes não-exportado de um módulo. É meramente uma convenção; o intérprete não se importa.

No contexto da sua pergunta, o duplo sublinhado não tem qualquer significado programático. sublinhados duplos significa algo especial para um número limitado de valores em Perl, mais notavelmente __FILE__ & __LINE__. Estes são literais especiais que não são prefixados com um sigilo ($, % ou @) e só são interpoladas fora de citações. Eles contêm o caminho completo e nome do arquivo atualmente em execução e a linha que está sendo executado. Veja a seção sobre 'literais especiais' em perldata ou este post sobre Perl Monks

Estou bastante certo de arg2__size é apenas o nome de uma variável.

A resposta de Mark é, naturalmente, correto, ele não tem nenhum significado especial.

Mas quero ressaltar que o seu exemplo não se parece com Perl em tudo. variáveis ??Perl não são barewords. Eles têm os sigilos, como você verá a partir dos links acima. E Perl não tem "funções", tem sub-rotinas.

Então, pode haver alguma confusão sobre qual a linguagem que estamos falando.

Você vai precisar de dizer ao intérprete que "$ arg2" é o nome de uma variável. e não "$ arg2__size". Para isso, você precisará usar o parêntese. (Esse uso é semelhante ao observado em shell).

Isso deve funcionar MyFunction ($ arg1, arg2 $ {} __ tamanho, $ arg3)

- Binu

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top