[SP-pm] printenv em perl?

jimmy jimmy.tty at gmail.com
Sun Jun 20 14:47:12 PDT 2010


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


More information about the SaoPaulo-pm mailing list