[SP-pm] printenv em perl?

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Sun Jun 20 15:10:22 PDT 2010


perl -E 'say for keys %main::'

2010/6/20 Thiago Glauco Sanchez <thiagoglauco em ticursos.net>:
> Outch.. magoa mandar googar...
>
> perl -E 'map{ say } keys %main::'
>
> é isso???
>
> Diminui esse Mantovani!!!!
>
>
> Em 20/06/2010 19:00, Thiago Glauco Sanchez escreveu:
>>
>> Em 20/06/2010 18:52, Daniel de Oliveira Mantovani escreveu:
>>>
>>> ...
>>>
>>> Você quer hackear a tabela de símbolos...
>>>
>>> http://lmgtfy.com/?q=Perl+symbol+tables
>>>
>>>
>>>
>>> 2010/6/20 jimmy<jimmy.tty em gmail.com>:
>>>>
>>>> On Sun, Jun 20, 2010 at 05:34:20PM -0300, Thiago Glauco Sanchez wrote:
>>>>>
>>>>> Em 20/06/2010 15:25, Nelson Ferraz escreveu:
>>>>>>
>>>>>> Em 20 de junho de 2010 20:15, jimmy<jimmy.tty em gmail.com>    escreveu:
>>>>>>
>>>>>>> Saudações amigos,
>>>>>>>
>>>>>>> Ando procurando uma forma de fazer em perl algo parecido com o
>>>>>>> comando
>>>>>>> printenv do coreutils faz no shell
>>>>>>>
>>>>>> Let me google that for you:
>>>>>>
>>>>>> http://lmgtfy.com/?q=printenv+perl
>>>>>> _______________________________________________
>>>>>> SaoPaulo-pm mailing list
>>>>>> SaoPaulo-pm em pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>>
>>>>>>
>>>>> Você está procurando algo como:
>>>>>
>>>>> perl -M5.12.0 -e 'map { say "$_ =>    $ENV{$_}" } keys %ENV'
>>>>>
>>>>> ????
>>>>
>>>> Não, no caso eu "desconheço" as variáveis e funções exportadas também
>>>> porque estou usando um shell perl e fico fazendo testes com ele aberto,
>>>> chega o momento que não sei que pacotes, variáveis e funções já tenho
>>>> definidos no interpretador.
>>>>
>>
>> Você quer saber quais as funções/módulos você carregou no seu name space?
>>>>
>>>> Se alguém já usou o builtin "set" do bash, ele mostra além das variáveis
>>>> as funções correntes.
>>>>
>>>> tentando exemplificar com código:
>>>>
>>>> -----------------------------------------------------------------------
>>>> #!/usr/bin/perl
>>>>
>>>> use strict;
>>>> use warnings;
>>>> use Data::Dumper;
>>>>
>>>> use Dumpvalue;
>>>> my $dumper = Dumpvalue->new();
>>>>
>>>> sub _print {
>>>>    print(qq(sub\n));
>>>> }
>>>>
>>>> our($STRING);
>>>> $STRING = q(APENAS PARA TESTE);
>>>>
>>>> $dumper->dumpvars(q(:main));
>>>> -----------------------------------------------------------------------
>>>>
>>>> obtenho como saída:
>>>>
>>>> -----------------------------------------------------------------------
>>>>
>>>> $/ = '
>>>> '
>>>> FileHandle(stderr) =>  fileno(2)
>>>> %SIG = (
>>>>   'ABRT' =>  undef
>>>>   'ALRM' =>  undef
>>>>   'BUS' =>  undef
>>>>   'CHLD' =>  undef
>>>>   'CLD' =>  undef
>>>>   'CONT' =>  undef
>>>>   'FPE' =>  'IGNORE'
>>>>   'HUP' =>  undef
>>>>   'ILL' =>  undef
>>>>   'INT' =>  undef
>>>>   'IO' =>  undef
>>>>   'IOT' =>  undef
>>>>   'KILL' =>  undef
>>>>   'NUM32' =>  undef
>>>>   'NUM33' =>  undef
>>>>   'NUM34' =>  undef
>>>>   'NUM36' =>  undef
>>>>   'NUM37' =>  undef
>>>>   'NUM38' =>  undef
>>>>   'NUM39' =>  undef
>>>>   'NUM40' =>  undef
>>>>   'NUM41' =>  undef
>>>>   'NUM42' =>  undef
>>>>   'NUM43' =>  undef
>>>>   'NUM44' =>  undef
>>>>   'NUM45' =>  undef
>>>>   'NUM46' =>  undef
>>>>   'NUM47' =>  undef
>>>>   'NUM48' =>  undef
>>>>   'NUM49' =>  undef
>>>>   'NUM50' =>  undef
>>>>   'NUM51' =>  undef
>>>>   'NUM52' =>  undef
>>>>   'NUM53' =>  undef
>>>>   'NUM54' =>  undef
>>>>   'NUM55' =>  undef
>>>>   'NUM56' =>  undef
>>>>   'NUM57' =>  undef
>>>>   'NUM58' =>  undef
>>>>   'NUM59' =>  undef
>>>>   'NUM60' =>  undef
>>>>   'NUM61' =>  undef
>>>>   'NUM62' =>  undef
>>>>   'NUM63' =>  undef
>>>>   'PIPE' =>  undef
>>>>   'POLL' =>  undef
>>>>   'PROF' =>  undef
>>>>   'PWR' =>  undef
>>>>   'QUIT' =>  undef
>>>>   'RTMAX' =>  undef
>>>>   'RTMIN' =>  undef
>>>>   'SEGV' =>  undef
>>>>   'STKFLT' =>  undef
>>>>   'STOP' =>  undef
>>>>   'SYS' =>  undef
>>>>   'TERM' =>  undef
>>>>   'TRAP' =>  undef
>>>>   'TSTP' =>  undef
>>>>   'TTIN' =>  undef
>>>>   'TTOU' =>  undef
>>>>   'UNUSED' =>  undef
>>>>   'URG' =>  undef
>>>>   'USR1' =>  undef
>>>>   'USR2' =>  undef
>>>>   'VTALRM' =>  undef
>>>>   'WINCH' =>  undef
>>>>   'XCPU' =>  undef
>>>>   'XFSZ' =>  undef
>>>>   '__WARN__' =>  undef
>>>> )
>>>> $" = ' '
>>>> FileHandle(stdout) =>  fileno(1)
>>>> $$ = 32174
>>>> $^RE_TRIE_MAXBUF = 65536
>>>> $! = ''
>>>> $^X = '/usr/bin/perl5.12.1'
>>>> @_ = (
>>>>   0  ':main::'
>>>>   1  0
>>>>   2  '_'
>>>>   3  *main::_
>>>> )
>>>> FileHandle(STDIN) =>  fileno(0)
>>>> $^WARNING_BITS = "\c@\c@\c@\c@\c@\c@\c@\c@\c@\c@\c@\c@"
>>>> FileHandle(stdin) =>  fileno(0)
>>>> @INC = (
>>>>   0  '/usr/lib/perl5/site_perl/5.12.1/i486-linux'
>>>>   1  '/usr/lib/perl5/site_perl/5.12.1'
>>>>   2  '/usr/lib/perl5/5.12.1/i486-linux'
>>>>   3  '/usr/lib/perl5/5.12.1'
>>>>   4  '/usr/lib/perl5/site_perl/5.8.7'
>>>>   5  '/usr/lib/perl5/site_perl/5.8.8'
>>>>   6  '/usr/lib/perl5/site_perl'
>>>>   7  '.'
>>>> )
>>>> %INC = (
>>>>   'Carp.pm' =>  '/usr/lib/perl5/5.12.1/Carp.pm'
>>>>   'Data/Dumper.pm' =>  '/usr/lib/perl5/5.12.1/i486-linux/Data/Dumper.pm'
>>>>   'Dumpvalue.pm' =>  '/usr/lib/perl5/5.12.1/Dumpvalue.pm'
>>>>   'Exporter.pm' =>  '/usr/lib/perl5/5.12.1/Exporter.pm'
>>>>   'List/Util.pm' =>  '/usr/lib/perl5/5.12.1/i486-linux/List/Util.pm'
>>>>   'Scalar/Util.pm' =>  '/usr/lib/perl5/5.12.1/i486-linux/Scalar/Util.pm'
>>>>   'XSLoader.pm' =>  '/usr/lib/perl5/5.12.1/XSLoader.pm'
>>>>   'bytes.pm' =>  '/usr/lib/perl5/5.12.1/bytes.pm'
>>>>   'overload.pm' =>  '/usr/lib/perl5/5.12.1/overload.pm'
>>>>   'strict.pm' =>  '/usr/lib/perl5/5.12.1/strict.pm'
>>>>   'vars.pm' =>  '/usr/lib/perl5/5.12.1/vars.pm'
>>>>   'warnings.pm' =>  '/usr/lib/perl5/5.12.1/warnings.pm'
>>>>   'warnings/register.pm' =>
>>>>  '/usr/lib/perl5/5.12.1/warnings/register.pm'
>>>> )
>>>> $0 = 'perl.pl'
>>>> $^H = 256
>>>> $@ = ''
>>>> FileHandle(STDOUT) =>  fileno(1)
>>>> $] = 5.012001
>>>> $^W = 0
>>>> FileHandle(STDERR) =>  fileno(2)
>>>> -----------------------------------------------------------------------
>>>>
>>>> mas a função "_print" que defini e as funções provenientes do
>>>> Data:Dumper, não aparecem e era isso que eu estou tentando fazer,
>>>> imprimir tudo o que está definido no interpretador naquele momento.
>>>>
>>>> Se o problema fosse as estruturas de dados, o Data::Dumper resolveria
>>>> bem, mas nesse momento os dados são o que menos me interessam.
>>>>
>>>>> --
>>>>> Thiago Glauco Sanchez
>>>>> Intrutor Perl e Redes
>>>>> www.ticursos.net
>>>>>
>>>>> _______________________________________________
>>>>
>>>> _______________________________________________
>>>> SaoPaulo-pm mailing list
>>>> SaoPaulo-pm em pm.org
>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>
>>>
>>>
>>
>>
>
>
> --
> Thiago Glauco Sanchez
> Intrutor Perl e Redes
> www.ticursos.net
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
http://www.danielmantovani.com
"If you’ve never written anything thoughtful, then you’ve never had
any difficult, important, or interesting thoughts. That’s the secret:
people who don’t write, are people who don’t think."


More information about the SaoPaulo-pm mailing list