[SP-pm] printenv em perl?

jimmy jimmy.tty at gmail.com
Sun Jun 20 16:37:18 PDT 2010


On Sun, Jun 20, 2010 at 07:42:07PM -0300, Daniel de Oliveira Mantovani wrote:
> Por favor conte-nos o que você está
> tentando fazer, eu acho que todos aqui vão ficar muito felizes em te
> ajudar.
Já me ajudaram e muito, faz tempo que estava tentando, e não saia nada,
já tenho por onde começar.

> >Caso eu carregue uma estrutura de dados de 1Gb na memória seria um
> >desastre fazer algo desse tipo, ainda assim gostaria de saber como pode
> >ser feito (não se preocupem eu tomo cuidado, rsrss).
> 
> Você precisa mesmo fazer isso ou você só está estudando ?
Bom, não faz muita diferença para esse caso aí, a questão era ter uma
estrutura de dados desse tamanho e dar um Dump nela, o tempo que iria
ficar vizualizando "strings passando" no terminal.

Mas é tudo para teste.

> Abraços!
> 
> 2010/6/20 Thiago Glauco Sanchez <thiagoglauco em ticursos.net>:
> > Te pago uma breja/choop no ES!!!
> >
> > Em 20/06/2010 19:11, Daniel de Oliveira Mantovani escreveu:
> >>
> >> 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."
> >>>
> >>>
> >>
> >>
> >>
> >
> >
> > --
> > 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."
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm

-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------


More information about the SaoPaulo-pm mailing list