Padwalker.

Brincar com as variáveis lexicais de outras pessoas
Baixe Agora

Padwalker. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Robin Houston
  • Site do editor:
  • http://search.cpan.org/~robin/

Padwalker. Tag


Padwalker. Descrição

PadWalker é um módulo Perl que permite inspeccionar (e até mesmo mudança!) Variáveis lexicais em qualquer sub-rotina que chamou. É só mostram as variáveis que estão no escopo no ponto da call.PadWalker é particularmente útil para a depuração. É ainda utilizado por depurador integrado do Perl. (Ele também pode ser usado para o mal, é claro.) Eu não recomendo o uso PadWalker diretamente no código de produção, mas é sua chamada. Alguns dos módulos que o uso PadWalker são internamente certamente seguro para e útil em production.peek_my argumento LEVELpeek_our Nível O nível é interpretado como o argumento para chamadas. Então peek_my (0) retorna uma referência a um hash de todos os meus variáveis que estão atualmente no escopo; peek_my (1) retorna uma referência a um hash de todos os meus variáveis que estão no âmbito no ponto em que a corrente de sub foi chamado, e assim por diante. peek_our funciona da mesma maneira, exceto que ele lista as nossas variáveis ao invés dos meus variáveis. O hash associa cada nome da variável com uma referência ao seu valor. Os nomes de variáveis incluem o sigilo, de modo a variável $ x é representado pela string '$ x'. Por exemplo: my $ x = 12; my $ h = peek_my (0); $ {$ H -> { '$ x'}} ++; imprimir $ x; # imprime 13 ou um mais complexo Exemplo: Sub increment_my_x {my $ h = peek_my (1); $ {$ H -> { '$ x'}} ++; } My $ x = 5; increment_my_x; imprimir $ x; # Impressões 6peek_sub SUB A rotina peek_sub leva um coderef como seu argumento e retorna um hash dos meus variáveis utilizadas nessa sub. Os valores irão geralmente ser indefinido, a menos que o sub está em uso (isto é, na chamada de cadeia) no tempo. Por outro lado: my $ x = "Olá"; my $ r = peek_sub (sub {$ x}) -> { '$ x'}; imprimir "$$ r \ n"; # 'Olá!' Impressões Se o sub define várias meus variáveis com o mesmo nome, você vai ter a última. Eu não sei de qualquer uso para peek_sub que não está quebrado, como resultado disso, e ele provavelmente será obsoleto em uma versão futura em favor de algum closed_over alternativa interface.closed_over SUB é semelhante ao peek_sub, exceto que ele só lista os meus variáveis que são usadas na sub-rotina, mas definidos fora: em outras palavras, as variáveis que se fecha sobre. Isto tem usos razoáveis: ver Data :: Dump :: Streamer, por exemplo (uma versão futura do que pode, de fato, o uso closed_over) .set_closed_over SUB, HASH_REF set_closed_over atribui novamente as variáveis almofada que estão fechados ao longo da sub-rotina. O segundo argumento é um hash de referências, bem como a um devolvido a partir do nível closed_over.var_name, VAR_REFvar_name SUB, VAR_REF var_name (sub, var_ref) retorna o nome da variável referida por var_ref, desde que seja um meu variável utilizada no sub. O parâmetro sub pode ser tanto uma referência de código ou um número. Se for um número, ela é tratada da mesma forma como o argumento para peek_my. Por exemplo, o meu $ foo; imprimir var_name (0, \ $ foo); # Sub my_name imprime '$ foo' {var_name retorno (1, shift); } Imprimir my_name (\ $ foo); # DittoSYNOPSIS uso qw PadWalker (peek_my peek_our peek_sub closed_over); ... Homepage do produto


Padwalker. Software Relacionado