[SP-pm] printenv em perl?

Thiago Glauco Sanchez thiagoglauco at ticursos.net
Sun Jun 20 15:08:06 PDT 2010


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



More information about the SaoPaulo-pm mailing list