[SP-pm] printenv em perl?

jimmy jimmy.tty at gmail.com
Sun Jun 20 15:55:46 PDT 2010


Puts, é esse o caminho mesmo Mantovani,
tinha apanhado demais da última vez que tentei mexer com ela
diretamente e tinha até esquecido, vou procurar alguma coisa
para facilitar o manuseio.

---------------------------------------

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

sub _print { print(qq(print\n)) }
sub _foo   { print(qq(foo\n)) }
sub _bar   { print(qq(bar\n)) }

grep { /^_[a-z]+$/ && print(qq($_\n)) } keys(%main::);

---------------------------------------

imprime:
_print
_foo
_bar

mas não funcionou nem no perlconsole nem no pirl.


On Sun, Jun 20, 2010 at 06:52:28PM -0300, Daniel de Oliveira Mantovani wrote:
> ...
> 
> 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."
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm


More information about the SaoPaulo-pm mailing list