[SP-pm] perl interativo (era: printenv em perl?)

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Wed Jun 23 12:05:22 PDT 2010


Não entendi nada o que você quer fazer, nem o motivo.

2010/6/23 Ronaldo Ferreira de Lima <jimmy.tty em gmail.com>:
> Em 21/06/10, Luis Motta Campos<luismottacampos em yahoo.co.uk>  escreveu:
>> Ronaldo Ferreira de Lima wrote:
>>> Isso tudo para facilitar testes, brincar com módulos e testar
>>> carcterísticas desconhecidas (para mim) da linguagem. Agora ficou
>>> perto da descrição de uma sandbox ...
>>>
>>
>> E, também a título de curiosidade: já que você não gosta de nenhuma das
>> implementações que estão no mercado, por que é que você não começa a
>> implementar uma sua? Eu posso sugerir alguma coisa, para você começar:
>>
>> #!/usr/bin/perl
>> use strict;
>> use warnings;
>>
>> while( my $code = <> ){
>>    eval $code;
>>    warn qq{Deu problema: $@.\n} if $@;
>> }
>> __END__
>>
>> Isto não tem muitas das funcionalidades que você gostaria, mas eu tenho
>> certeza de que faz o básico, que é o read-eval-loop.
>>
>> Agora, que tal você pegar nisso e começar a quebrar a cabeça para
>> implementar o que está faltando? Eu vou gostar de ver você postando
>> código aqui, em breve.
>>
>> Boa sorte, e putamplexos.
>> --
>> Luis Motta Campos is a DBA,
>> Perl Programmer, foodie and photographer.
>> _______________________________________________
>
> Se não me engano é no perlfaq3 onde fala algumas coisas sobre se usar
> o perl interativamente, como o "perl -d" sugerido por um colega, é
> muito limitado para se usar como shell e não reflete o real
> comportamento do compilador real.
>
> Seguindo sua sugestão Luis, eu fiz ontem um protótipo pré-beta:
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
> use diagnostics;
>
> my $code;
> my $prompt = q(Perl> );
> $prompt = qq(\e[40;32;1m${prompt}\e[0m);
> do {
>    print($prompt);
>    if ($code) {
>                if ( substr($code, 0, 7) eq q(perldoc) ) {
>                        system($code);
>                }
>                else {
>                        my @result = eval($code);
>                        foreach my $result ( @result ) {
>                                print(qq($result\n));
>                        }
>                        warn(qq($@.\n)) if ($@);
>                }
>    }
> } while ( $code = <> );
> __END__
>
> Conforme também sugerido, comecei a olhar ontem os Term::* do CORE,
> talvez e vou fazer alguns testes para ver se consigo criar algo mais
> usável neste sentido, uma vez que pelo comportamento do eval não
> consigo habilitar ou desabilitar pragmas por exemplo.
>
> Como você disse (e era o que você queria), eu vou realmente quebrar a cabeça.
>
> Só me complica meus recursos limitados, e depender de lan house para
> acesso a internet.
> _______________________________________________
> 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