From a.r.ferreira em gmail.com Tue Feb 13 03:27:38 2007 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Tue, 13 Feb 2007 09:27:38 -0200 Subject: [Triangulo-pm] Exemplo: Copiando arquivos Message-ID: <73ddeb6c0702130327s2ea22ffer4d08d0d338a540e6@mail.gmail.com> Olá, Pessoal. Depois de uma longa ausência, estou aqui de volta para fazer algum tráfego nesta lista que, quem sabe, vira grupo de desenvolvedores Perl algum dia. O exemplo desta mensagem é bem curto e simples. Copiar arquivos através de um shell (ou interpretador de comandos) é uma coisa rotineira e simples. > copy source target (para cmd.exe em Windows) $ cp source target # para sistemas *nix Dentro de uma aplicação Perl, a cópia de arquivos também é muito fácil de ser feita. Há um módulo chamado File::Copy que é tudo o que precisamos. A documentação deste módulo está instalado junto com o seu interpretador Perl e pode ser vista através do comando $ perldoc File::Copy O módulo faz parte da biblioteca padrão que vem com todo interpretador Perl e portanto não precisa de nenhum procedimento de instalação além daquele que você já fez para instalar Perl. O exemplo de script a seguir recebe uma lista de nomes de arquivos como argumento na linha de comando e faz o backup (cópia) de cada um deles no diretório "bak". #!/usr/bin/perl die "Usage: $0 FILE..." unless @ARGV; use File::Copy 'cp'; mkdir 'bak' unless -e 'bak'; die "'bak' is not a directory" unless -d 'bak'; for (@ARGV) { print STDERR "copying $_... "; cp $_, "bak/$_" or warn "error: $!"; print STDERR "ok\n" unless $!; } Este conteúdo está no arquivo em anexo, "bak.pl". Na hora de usar, basta fazer > perl bak.pl file1 file2 e o diretório "bak/" será criado no diretório corrente se não existir e os arquivos dados como argumentos serão copiados para lá. Há algumas diferenças entre usar um shell e o interpretador de comandos Windows. Por exemplo, $ perl bak.pl *.txt funciona bem em um shell que fará a expansão do glob "*.txt" para nós. Mas em Windows, > perl bak.pl *.txt copying *.txt... error: No such file or directory at bak.pl line 12. No entanto, é muito fácil fazer uma pequena modificação neste programa e fazer a expansão do glob no próprio programa Perl, tornando o script ainda mais portável. Alguém se arrisca a sugerir uma modificação para fazer isto? Adriano Ferreira. -------------- next part -------------- A non-text attachment was scrubbed... Name: bak.pl Type: application/octet-stream Size: 290 bytes Desc: not available Url : http://mail.pm.org/pipermail/triangulo-pm/attachments/20070213/2cb0902d/attachment.obj From a.r.ferreira em gmail.com Wed Feb 14 02:18:27 2007 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Wed, 14 Feb 2007 08:18:27 -0200 Subject: [Triangulo-pm] corelist Message-ID: <73ddeb6c0702140218v1cf80e6dt4c5c879b4afb0a8d@mail.gmail.com> Olá, Perlsoal! Hoje eu vou mencionar um módulo muito útil para quem está desenvolvendo programas em Perl e quer saber quais os módulos são disponíveis junto com o interpretador. Os módulos da distribuição oficial vem aumentando com o tempo à medida que novas versões são liberadas. Este módulo é o Module::Corelist. Você encontra a documentação dele no search.cpan http://search.cpan.org/dist/Module-CoreList ou, na sua máquina, se ele tiver sido instalado com $ perldoc Module::Corelist O módulo traz junto um utilitário chamado "corelist" que você se usa diretamente no Shell para perguntar se um módulo faz parte do "core" (distribuição oficial de Perl) e desde quando: $ corelist Module::CoreList Module::CoreList was first released with perl 5.009002 Atenção que isto significa que o Module::CoreList só entrou no core na versão de desenvolvimento 5.9.2 e a versão de produção é 5.8.8. Portanto, se você instalar o 5.8.8, você não vai ter instalado o Module::CoreList. Você precisa de instalá-lo através do utilitário "cpan" (que deve estar devidamente configurado, e isso a gente deve ver em outra mensagem se alguém tiver curiosidade e interesse). $ cpan cpan> install Module::CoreList Mas como o Module::CoreList é muito simples, você também pode fazer o download diretamente do CPAN na URL http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/Module-CoreList-2.09.tar.gz Descompactá-lo (com tar, winzip ou o quer que você tenha em mãos que faça isto), e executar o mantra de instalação: http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/Module-CoreList-2.09.tar.gz $ perl Makefile.PL $ make $ make test $ make install ou em Windows (ActiveState Perl) > perl Makefile.PL > nmake > nmake test > nmake install (Atenção: você precisa ter o nmake instalado. :) Feito isto, você pode usar o corelist para saber das coisas. Então, você escreveu seu script utilizando DBI (acesso a bases de dados relacionais), Template (geração de páginas de HTML e outros), Encode (manipulação de texto em diferentes codificações como ISO-Latin1 ou UTF-8) e Time::HiRes (relógio com alta resolução) e quer saber qual deles é parte do "core" e qual vai precisar ser instalado separadamente: $ corelist DBI Template Encode Time::HiRes DBI was not in CORE (or so I think) Template was not in CORE (or so I think) Encode was first released with perl 5.007003 Time::HiRes was first released with perl 5.007003 Ou seja, DBI e Template não estão na distribuição padrão e o Encode e Time::HiRes estão desde a versão 5.7.3. Além destas procuras exatas, o "corelist" pode responder sobre módulos que combinam com determinadas regexes. Por exemplo, quais os módulos padrões que começam com "File". $ corelist /^File/ [muitos :) Módulos cujo nome incluem "time" sem importar-se com maiúsculas ou minúsculas. $ corelist /time/i CPAN::FirstTime was first released with perl 5.004 Net::Time was first released with perl 5.007003 Time::HiRes was first released with perl 5.007003 Time::Local was first released with perl 5 Time::gmtime was first released with perl 5.004 Time::localtime was first released with perl 5.004 Time::tm was first released with perl 5.004 Ok. Era esta a mensagem de hoje. Adriano Ferreira. From a.r.ferreira em gmail.com Thu Feb 22 04:58:52 2007 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Thu, 22 Feb 2007 10:58:52 -0200 Subject: [Triangulo-pm] [OT] Vagas para programadores de testes Message-ID: <73ddeb6c0702220458y5f8f1b8ep6e9cf33cdfb53a4a@mail.gmail.com> Mensagem vinda da Lista principal do projeto LinuxChix Brasil On 2/22/07, priscilla at linuxchix.org.br wrote: > > Interessados respondam em PVT com curriculum e pretensão salarial. > > Precisa-se de Programador de Teste para trabalhar em Brasilia no > Ministério do Desenvolvimento Social e Combate a fome. > > Formação: Curso superior completo ou incompleto em Análise de Sistemas, > Ciência da Computação, Processamento de Dados, Informática ou Engenharia > da Computação; ou Curso em área afim com pós-graduação na área de > Tecnologia da Informação (mínimo de 360 (trezentos e sessenta) horas). > > Capacitação: Projeto Estruturado ou Orientado a Objetos ou Teste de > Software. Carga-horária mínima de 20 (vinte) horas para cada curso. > > Experiência: Mínimo de 02 (dois) anos como Programador; Expressão Regular > ; e Mínimo de 02 (dois) anos em atividades de planejamento e execução de > testes de software. > > Utilização das ferramentas: Trac,Jmeter,Svn,Apache. > > > > _Descrição de Atividades: > > O serviço de homologação/teste de sistemas tem o objetivo de garantir a > qualidade dos produtos desenvolvidos e entregues ao MDS, diminuindo o > retrabalho, manutenção corretiva e diminuição do impacto nas atividades > dos usuários em função de erros ocorridos no ambiente de produção. > > Atividades de Homologação e Testes > > a) realizar teste de unidade e integração do código produzido; > > b) realizar testes de carga e stress validando se a arquitetura > implementada atende aos requisitos levantados pela aplicação; > > c) realizar testes nos artefatos produzidos nas fases de iniciação e > elaboração do projeto; > > d) realizar os testes funcionais, fazendo os registros de erros > encontrados, assegurando que a aplicação desenvolvida atenda os requisitos > levantados. > > _______________________________________________ > Linuxchix mailing list > Linuxchix at linuxchix.org.br > http://listas.linuxchix.org.br/mailman/listinfo/linuxchix > From a.r.ferreira em gmail.com Fri Feb 23 09:22:03 2007 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Fri, 23 Feb 2007 15:22:03 -0200 Subject: [Triangulo-pm] Um interpretador de linha para Perl Message-ID: <73ddeb6c0702230922x5306695dx3936b018e6694740@mail.gmail.com> Nesta semana, eu coloquei um pequeno projeto de um interpretator de linha para Perl no Google Code. O link principal do projeto é: http://code.google.com/p/iperl/ Você pode fazer o download da última distribuição através de: http://iperl.googlecode.com/files/Shell-Perl-0.0006.tar.gz E então instalá-lo com seu Perl através do mantra: > perl Makefile.PL > nmake > nmake test > nmake install Entre os arquivos instalados, estará o "pirl" que é o "interactive Perl". Com ele você pode testar comandos Perl diretamente na linha de comando. $ pirl Welcome to the Perl shell. Type ':help' for more information pirl @> 1+1 2 pirl @> split /:/, '1:2:3' (1, 2, 3) pirl @> my %hash; @hash{qw(a b c)} = qw(1 2 3); \%hash { a => 1, b => 2, c => 3 } pirl @> use File::Basename qw(dirname); glob(dirname($^X) . "/perl*") ( "/usr/local/bin/perl.exe", "/usr/local/bin/perl5.8.8.exe", "/usr/local/bin/perlbug", "/usr/local/bin/perlcc", "/usr/local/bin/perldoc", "/usr/local/bin/perlivp", "/usr/local/bin/perlld", "/usr/local/bin/perltidy", ) pirl @> :quit Espero melhorar muito este interpretador, mas por enquanto é isto aí. Sugestões, dúvidas e qualquer forma de feedback são todos bem vindos. Adriano Ferreira