[SP-pm] printenv em perl?

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Sun Jun 20 14:52:28 PDT 2010


...

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



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