[SP-pm] printenv em perl?

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


Arghhh!! Esqueci de retirar um espaço,

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

-1 :D

2010/6/20 Daniel de Oliveira Mantovani <daniel.oliveira.mantovani em gmail.com>:
> 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."
>



-- 
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