From lscosta em uninet.com.br Mon Sep 1 13:30:43 2003 From: lscosta em uninet.com.br (Leandro Costa) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Escrever em ler arquivo e escrever Message-ID: <001e01c370b7$27621010$c801010a@0005p> Ola Galera, Nunca programei em perl e o meu primeiro desafio eh: Ler o arquivo A com o seguinte conteudo a1;a2;a3;a4; b1;b2;b3;b4; c1;c2;c3;c4; escrever um arquivo b com a seguinte resultado: 1a. campo: A1 2a. campo: A2 3a. campo: A3 4a. campo: A4 . . . 1a. campo: c1 2a. campo: c2 3a. campo: c3 4a. campo: c4 Onde as informacoes complementares seriam pegar do arquivo A. Como fazer isso ??? grato Leandro From spooker em spooker.com.br Mon Sep 1 14:15:34 2003 From: spooker em spooker.com.br (spooker@spooker.com.br) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Escrever em ler arquivo e escrever In-Reply-To: <001e01c370b7$27621010$c801010a@0005p> References: <001e01c370b7$27621010$c801010a@0005p> Message-ID: <1062443734.3f539ad62716c@www.spooker.com.br> Bom, modo funcional ... --- inicio --- #!/usr/bin/perl open(A,"a.txt"); while ($linha=){ ($a,$b,$c,$d)=split(";",$linha); open(B,">>b.txt"); print B "Campo 1 : $a\n"; print B "Campo 2 : $b\n"; print B "Campo 3 : $c\n"; print B "Campo 4 : $d\n\n"; } --- Fim --- []z!Sp0oKeR! Quoting Leandro Costa : > Ola Galera, > > Nunca programei em perl e o meu primeiro desafio eh: > Ler o arquivo A com o seguinte conteudo > a1;a2;a3;a4; > b1;b2;b3;b4; > c1;c2;c3;c4; > > escrever um arquivo b com a seguinte resultado: > > 1a. campo: A1 > 2a. campo: A2 > 3a. campo: A3 > 4a. campo: A4 > . > . > . > 1a. campo: c1 > 2a. campo: c2 > 3a. campo: c3 > 4a. campo: c4 > > Onde as informacoes complementares seriam pegar do arquivo A. > > Como fazer isso ??? > > > grato > Leandro > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > From nferraz em phperl.com Mon Sep 1 18:16:16 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Escrever em ler arquivo e escrever In-Reply-To: <1062443734.3f539ad62716c@www.spooker.com.br> References: <001e01c370b7$27621010$c801010a@0005p> <1062443734.3f539ad62716c@www.spooker.com.br> Message-ID: <1062455006.3640.113.camel@localhost> > #!/usr/bin/perl > > open(A,"a.txt"); > > while ($linha=){ > ($a,$b,$c,$d)=split(";",$linha); > open(B,">>b.txt"); > print B "Campo 1 : $a\n"; > print B "Campo 2 : $b\n"; > print B "Campo 3 : $c\n"; > print B "Campo 4 : $d\n\n"; > } Voce pode eliminar a primeira linha (open (A, a.txt)) e ler as informacoes diretamente de <>. while ($linha = <>) { ... } Ao passar um nome de arquivo, ele sera usado automaticamente. []s Nelson From lscosta em uninet.com.br Thu Sep 4 20:10:23 2003 From: lscosta em uninet.com.br (Leandro Costa) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Script para criacao de arquivo dhcpd.conf Message-ID: <000c01c3734a$a7f4fa90$1e01010a@xmen> Ola galera !!! Depois das dicas que peguei com vcs para trabalhar com arquivos, resolvi botar a mao na massa. Crie um arquivos estacoes.csv : 0;JOAO;0128p;00:02:E3:08:2f:C7;10.1.0.21;;; 1;MARIA;0147p;00:Af:CC:39:43:70;10.1.0.22;;; O primeiro campo do arquivo e um flag onde: ´1´ escreva #### JOAO host 0128p { hardware ethernet 00:02:E3:08:2f:C7; fixed-address 10.1.0.21; ´0´ escreva ###Nome: , Hostname: 0147p, IP: 10.1.0.22. Mais nao consigo fazer isso !!!! Outra coisa que ainda nao fiz, seria verificar se existe o arquivo dhcpd.conf caso existe renomear o antigo para dhcpd.conf.data+hora Desde jah grato Leandro #!/usr/bin/perl open(E, "estacoes.csv"); open(D, ">dhcpd.conf"); print D "ddns-update-style interim;\n"; print D "ignore client-updates;\n"; print D "log-facility local0;\n"; print D "subnet 10.1.0.0 netmask 255.255.254.0 {\n"; print D " option subnet-mask 255.255.254.0;\n"; print D " option domain-name \"fccsa\";\n"; print D " option domain-name-servers 10.1.1.43;\n"; print D " option netbios-name-servers 10.1.1.42;\n"; print D " range dynamic-bootp 10.1.0.223 10.1.0.248;\n"; print D " default-lease-time 600;\n"; print D " max-lease-time 7200;\n"; print D " option broadcast-address 10.1.1.255;\n"; print D " option routers 10.1.1.1;\n"; print D " }\n\n"; close(D); while ($linha=) { ($status,$username,$hostname,$mac,$ip)=split(";",$linha); open(D,">>dhcpd.conf"); if ($status = 0) { print D "#### $username \n"; print D "host $hostname { \n"; print D " hardware ethernet $mac;\n"; print D " fixed-address $ip;\n}\n\n\n"; } print D "### Nome: $username, Hostname: $hostname, IP: $ip.\n"; } From glasswalk3r em yahoo.com.br Fri Sep 5 09:23:01 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Perl e Oracle Message-ID: <20030905142301.58319.qmail@web20203.mail.yahoo.com> Olá pra todos, Essa aqui vai para quem usa a dobradinha Perl+Oracle (o Le Champs deve ser um deles): para carregar dados numa tabela, o que apresenta performance melhor: usar store procedures do Oracle ou script em Perl usando o módulo DBI? Considerem arquivos texto com campos delimitados por tamanho e arquivos xml. []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Fri Sep 5 10:33:53 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Perl e Oracle References: <20030905142301.58319.qmail@web20203.mail.yahoo.com> Message-ID: <3F58ACE1.5060605@terra.com.br> Alceu R. de Freitas Jr. wrote: > Olá pra todos, > > Essa aqui vai para quem usa a dobradinha Perl+Oracle > (o Le Champs deve ser um deles): Desculpe desapontá-lo, Alceu, mas aqui o pessoal não usa Oracle... eles acham que não vale à pena, são representantes de um banco de dados chamado D3, da www.rainingdata.com, que eles pensam ser melhor... eu acabo usando MySQL para tudo, ou quase tudo... Se eu pudesse escolher, usaria PostgreSQL, que é quase tão bom quanto Oracle, mas melhor: é gratis... mas vamos voltar à vaca-fria: > (...) para carregar dados > numa tabela, o que apresenta performance melhor: usar > store procedures do Oracle ou script em Perl usando o > módulo DBI? Considerem arquivos texto com campos > delimitados por tamanho e arquivos xml. > # -- perl -- use Verbose; __END__ Precisamos fazer uma distinção. Você está falando de carregar dados usando que tipo de fonte de dados? (1) Se estiver pensando em gerar dados, ou carregar de um backup ou dump de dados "estrangeiro" (possivelmente de outro banco de dados não-oracle), a melhor forma é usar o DataLoader da própria Oracle. Pergunte ao seu DBA. (2) Se estiver pensando em dados de produção (um conjunto de dados que você não pode ter todo junto em um dado momento, como um cadastro que cada usuário preenche ao entrar no sistema), ou alguma outra forma de geração de dados incremental, a melhor forma de inserir dados é... Perl, é claro! =-] Por quê? Simples: ao usar Perl, o DBI gera diretamente um query INSERT para o RDBMS, e não precisa esperar carga e copilação de rotinas (ou acesso à memória para obter as rotinas), nem precisa esperar as rotinas rodarem para ter os dados em tabelas. Agora a escolha é sua: carga de dados estáticos (1) ou armazenamento de informações obtidas durante o tempo de produção, dinâmicamente(2)? -------------------------------------------------------------- Sob o ponto de vista da engenharia de software, existem duas vertentes interessantes sobre este problema: a primeira (a) diz que você deve concentrar toda a inteligência da sua aplicação no seu sistema (e não no banco de dados). Isto obviamente fala contra Stored Procedures e coisas correlatas. A segunda (b) diz que o sistema deve ser dividido e que cada pedaço deve lidar apenas com informações relacionadas com ele (e assim, tudo o que estiver ligado com a integridade dos dados mantidos no RDBMS deveria estar implementado em Stored Procedures). Na minha opinião, você pode pensar nisso tudo conjugado: É bom para o seu sistema aceitar esta (a) ou aquela (b) aproximação para resolver o problema? O que você faz hoje? Se faz (a), não pode pensar em fazer (b) e vice-versa. Caso contrário, você criará um "pesadelo de manutenção" (Maintenance Nightmare - TM ) sem sombra de dúvida. Responder à estas perguntas podem ajudar você a escolher entre carga de dados estáticos ou armazenamento de informações obtidas durante o tempo de produção, dinâmicamente, que eu citei mais para cima... Espero que, além de verborrágico, eu tenha sido útil... =-] -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Fri Sep 5 12:02:57 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Perl e Oracle In-Reply-To: <3F58ACE1.5060605@terra.com.br> Message-ID: <20030905170257.70243.qmail@web20207.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > > Desculpe desapontá-lo, Alceu, mas aqui o pessoal > não usa Oracle... > eles acham que não vale à pena, são representantes > de um banco de dados > chamado D3, da www.rainingdata.com, que eles pensam > ser melhor... eu > acabo usando MySQL para tudo, ou quase tudo... Ah, eu não vou iniciar uma flamewar na lista sobre bancos de dados. :-) > (2) Se estiver pensando em dados de produção (um > conjunto de dados > que você não pode ter todo junto em um dado momento, > como um cadastro > que cada usuário preenche ao entrar no sistema), ou > alguma outra forma > de geração de dados incremental, a melhor forma de > inserir dados é... > Perl, é claro! =-] Por quê? Simples: ao usar Perl, o > DBI gera > diretamente um query INSERT para o RDBMS, e não > precisa esperar carga e > copilação de rotinas (ou acesso à memória para obter > as rotinas), nem > precisa esperar as rotinas rodarem para ter os dados > em tabelas. Com certeza estou falando sobre o ítem 2: estou carregando dados de sistemas distintos de/para. Às vezes consigo usar XML (o que é uma boa) mas a maior parte fica por arquivos texto. Li em algum lugar que as procedures do Oracle são guardadas em memória. Ou seja, são lidas e compiladas uma vez, depois ficam lá esperando serem chamadas de novo. Se isso ocorre mesmo, fica complicado para o Perl ganhar em velocidade. Estou pensando em sugestionar uso de Perl em lugar de procedures mais complexas, uma vez que é bem mais simples utilizar Perl para controlar dados, gerar logs, etc... Esclareci um pouco melhor agora? []´S ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Fri Sep 5 12:31:01 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Perl e Oracle References: <20030905170257.70243.qmail@web20207.mail.yahoo.com> Message-ID: <3F58C855.8070408@terra.com.br> Alceu R. de Freitas Jr. wrote: > --- Luis escreveu: > [ Estranho gosto da empresa pelo D3... ] > Ah, eu não vou iniciar uma flamewar na lista sobre > bancos de dados. :-) Obrigado, eu te devo esta. Meu sonho de consumo é trabalhar com Perl e Oracle em um grande projeto... quem sabe um dia? =-] > Com certeza estou falando sobre o ítem 2: estou > carregando dados de sistemas distintos de/para. Às > vezes consigo usar XML (o que é uma boa) mas a maior > parte fica por arquivos texto. Opa! Desculpe! Acho que quem não se expressou corretamente fui eu! O (2) do primeiro email (consultem o arquivo da lista, mongers!) faz referência a informações obtidas dinamicamente, uma a uma, normalmente de fontes de dados distintas e humanas. Um bom exemplo é um artigo ou mensagem postada para um web-board, ou um registro de um usuario para um sistema de intranet ou bugtrack... Você está falando de carga de dados em batch, ou está falando de cadastramento de registros um-a-um, por humanos ou algo parecido? Dica: o Oracle tem ferramentas (data-loader) insuperáveis em velocidade para carregar dados em batch. O Data Loader grava diretamente no arquivo de dados, sem solicitar ajuda do RDBMS. Isso economiza o tempo de armazenamento das operações de inserção de dados no Redo-Log, o que torna este método imbatível... > Li em algum lugar que as procedures do Oracle são > guardadas em memória. Ou seja, são lidas e compiladas > uma vez, depois ficam lá esperando serem chamadas de > novo. Se isso ocorre mesmo, fica complicado para o > Perl ganhar em velocidade. Possivelmente no manual da Oracle. Não é completamente mentira, mas certamente não é toda a verdade. Stored procedures normalmente estão em disco, como texto (source-code). Elas sobem para a memória, são compiladas, catalogadas no cache de disco em uma área de memória partilhada chamada "Library Cache", onde o Oracle guarda todo o tipo de código PL/SQL depois de compilado. O que o pessoal não menciona muito é que esta área é pequena, proporcionalmente ao tamanho e quantidade de procedures normalmente armazenadas. É a campeã de falhas de cache ("cache page miss" -- quando o que você procura não está mais em cache) do RDBMS Oracle. Um outro aspecto: o Perl tem custo de startup fixo: você roda uma vez e pronto, o programa está funcionando (e vai fazer carga de todos os registros que você apresentar para esta sessão). O Oracle reinicia um stored procedure (e paga os custos de start-up) a cada nova chamada. Isso acumula muito mais custos para o Oracle, sem dúvida. > Estou pensando em sugestionar uso de Perl em lugar de > procedures mais complexas, uma vez que é bem mais > simples utilizar Perl para controlar dados, gerar > logs, etc... Eu acho que isso vai depender muito da forma como seus dados estão: São confiáveis? Vêm em pacotes de milhares de registros? São puros? Existem registros com problemas / sujos? Que tipo de informações de log você precisa? Isso está dentro do banco de dados? Você pode sugerir ao pessoal que use Perl;, mas acho que a possibilidade de utilizar um mecanismo de carga de dados da Oracle pode ser mais atraente... > Esclareci um pouco melhor agora? =-] Estamos chegando lá. Eu espero ter sido claro também. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Fri Sep 5 13:17:52 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Perl e Oracle In-Reply-To: <3F58C855.8070408@terra.com.br> Message-ID: <20030905181752.3483.qmail@web20208.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > Obrigado, eu te devo esta. > Meu sonho de consumo é trabalhar com Perl e > Oracle em um grande > projeto... quem sabe um dia? =-] Nada que uma cerveja depois não resolva. :~) Quanto ao seu sonho... não é tão impossível assim, se considerar que grandes projetos rodam Oracle em plataforma UNIX, e quase todos os UNIX do mundo incluem Perl instalado. > O (2) do primeiro email (consultem o arquivo da > lista, mongers!) faz > referência a informações obtidas dinamicamente, uma > a uma, normalmente > de fontes de dados distintas e humanas. Talvez hajam gnomos dentro dos servidores Tru64Unix daqui, mas eu nunca os vi. Mas sempre existe a possibilidade... hehehe... que papo de doido... > Você está falando de carga de dados em batch, ou > está falando de > cadastramento de registros um-a-um, por humanos ou > algo parecido? Exatamente: carga/descarga via batch, com tarefas agendadas e tudo o mais. Antiquado, não? > Dica: o Oracle tem ferramentas (data-loader) > insuperáveis em > velocidade para carregar dados em batch. O Data > Loader grava diretamente > no arquivo de dados, sem solicitar ajuda do RDBMS. > Isso economiza o > tempo de armazenamento das operações de inserção de > dados no Redo-Log, o > que torna este método imbatível... Oracle maldito... eu queria programar em Perl e ele não deixa... > Stored procedures normalmente estão em disco, > como texto > (source-code). Elas sobem para a memória, são > compiladas, catalogadas no > cache de disco em uma área de memória partilhada > chamada "Library > Cache", onde o Oracle guarda todo o tipo de código > PL/SQL depois de > compilado. O que o pessoal não menciona muito é que > esta área é pequena, > proporcionalmente ao tamanho e quantidade de > procedures normalmente > armazenadas. É a campeã de falhas de cache ("cache > page miss" -- quando > o que você procura não está mais em cache) do RDBMS > Oracle. Então só é um método eficiênte se quase ninguém usa o banco? Muuuito esperto. SAP usa isso, mas ao menos funciona. > Um outro aspecto: o Perl tem custo de startup > fixo: você roda uma vez > e pronto, o programa está funcionando (e vai fazer > carga de todos os > registros que você apresentar para esta sessão). O > Oracle reinicia um > stored procedure (e paga os custos de start-up) a > cada nova chamada. > Isso acumula muito mais custos para o Oracle, sem > dúvida. As procedures aqui carregam linhas de arquivos texto e mandam para tabelas. Isso significa que, para cada linha, é feito uma chamada para a procedure? > Eu acho que isso vai depender muito da forma como > seus dados estão: > São confiáveis? Vêm em pacotes de milhares de > registros? São puros? > Existem registros com problemas / sujos? Que tipo de > informações de log > você precisa? Isso está dentro do banco de dados? São confiáveis por projeto (o que significa que de vez em quando falha), mesmo em arquivos texto o tamanho do campo é delimitado. Alguns arquivos são realmente grandes. Preciso de logs com timestamp me dizendo onde o processo foi parado, e ser der, por que. As procedures do Oracle fazem isso, mas os logs são de doer de ler... > Você pode sugerir ao pessoal que use > Perl;, mas acho que > a possibilidade de utilizar um mecanismo de carga de > dados da Oracle > pode ser mais atraente... Enfim, vale a pena fazer um teste entre carregar o mesmo arquivo de dados usando uma procedure e um script em Perl? []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From nferraz em phperl.com Fri Sep 5 15:22:47 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:45 2004 Subject: [Cascavel-pm] Script para criacao de arquivo dhcpd.conf In-Reply-To: <000c01c3734a$a7f4fa90$1e01010a@xmen> References: <000c01c3734a$a7f4fa90$1e01010a@xmen> Message-ID: <1062793367.760.245.camel@server> On Qui, 2003-09-04 at 22:10, Leandro Costa wrote: > Ola galera !!! > Depois das dicas que peguei com vcs para trabalhar com arquivos, resolvi > botar a mao na massa. > Mais nao consigo fazer isso !!!! A minha primeira sugestão é incluir um "#!/usr/bin/perl -w" e um "use strict" no começo do arquivo. Ajuda a evitar erros. ;) Minha segunda sugestão é não escrever e ler diretamente de arquivos. Leia os dados da entrada padrão ( ou <>) e escreva para a saída padrão (print). Com isso fica muito mais fácil debugar o código, e quando tudo estiver ok você poderá redirecionar tanto a entrada quanto a saída para arquivos. Assim, o seu código ficará mais simples: while (my $linha = <>) { my ($status,$username,$hostname,$mac,$ip) = split (";", $linha); if ($status == 0) { print "123"; } else { print "456"; } } > Outra coisa que ainda nao fiz, seria verificar se existe o arquivo > dhcpd.conf caso existe renomear o antigo para dhcpd.conf.data+hora Para verificar a existência de um arquivo, use: if (-f $filename) { } -- Nelson Ferraz GNU BIS From lechamps em terra.com.br Fri Sep 5 16:53:12 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Perl e Oracle References: <20030905181752.3483.qmail@web20208.mail.yahoo.com> Message-ID: <3F5905C8.7020907@terra.com.br> Alceu R. de Freitas Jr. wrote: > --- Luis Campos de Carvalho > escreveu: > >> Obrigado, eu te devo esta. >> Meu sonho de consumo é trabalhar com Perl e >>Oracle em um grande >>projeto... quem sabe um dia? =-] > > > Nada que uma cerveja depois não resolva. :~) Anotado. Quando a gente se encontrar, me cobre. =-] > >> Você está falando de carga de dados em batch, ou >>está falando de >>cadastramento de registros um-a-um, por humanos ou >>algo parecido? > > > Exatamente: carga/descarga via batch, com tarefas > agendadas e tudo o mais. Antiquado, não? > Não, meu caro... moderníssimo... E tenho certeza de que a dica abaixo serve exatamente para o seu caso: use o Dataloader... >> Dica: o Oracle tem ferramentas (data-loader) >>insuperáveis em >>velocidade para carregar dados em batch. O Data >>Loader grava diretamente >>no arquivo de dados, sem solicitar ajuda do RDBMS. >>Isso economiza o >>tempo de armazenamento das operações de inserção de >>dados no Redo-Log, o >>que torna este método imbatível... > > > Oracle maldito... eu queria programar em Perl e ele > não deixa... =-] Ehehehe... > >> Stored procedures normalmente estão em disco, (...) >>armazenadas. É a campeã de falhas de cache ("cache >>page miss" -- quando >>o que você procura não está mais em cache) do RDBMS >>Oracle. > > Então só é um método eficiênte se quase ninguém usa o > banco? Muuuito esperto. SAP usa isso, mas ao menos > funciona. Mais ou menos isso. Existem muitos procedimentos de tuning que podem melhorar isso. Mas não se entusiasme. > > As procedures aqui carregam linhas de arquivos texto e > mandam para tabelas. Isso significa que, para cada > linha, é feito uma chamada para a procedure? > Para ter certeza disso, eu precisaria olhar suas procedures. Mas existe uma grande probabilidade de isso estar correto. Para cada linha, um novo disparo de procedure. > > São confiáveis por projeto (o que significa que de vez > em quando falha), mesmo em arquivos texto o tamanho do > campo é delimitado. Alguns arquivos são realmente > grandes. Preciso de logs com timestamp me dizendo onde > o processo foi parado, e ser der, por que. As > procedures do Oracle fazem isso, mas os logs são de > doer de ler... > # =-] Eu poderia ser mais claro... # mas perderia a graça, certamente. no Human::Reader; use Perl; > > Enfim, vale a pena fazer um teste entre carregar o > mesmo arquivo de dados usando uma procedure e um > script em Perl? > Só se junto você tentar usar o Data Loader. Estou certo de que você pode tentar usar Perl, e pode até conseguir boa performance. Mas o Data Loader é o caminho. Eu cheguei a reduzir o tempo de carga de dados para 10% (sim, 10 vezes) usando o Data Loader... mas ele não dispara Triggers das tabelas, lembre disso!!! []'z! && Boa sorte. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From frighetti em cascavel.pm.org Sat Sep 6 14:34:48 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?Dom=EDnio?= Message-ID: <20030906163448.7b19f41f.frighetti@cascavel.pm.org> Olá pessoal! Recentemente foi liberado o domínio perl.org.br, após três meses de tentativas em registrar. Isto graças a um amigo de Curitiba - PR (Cláudio Romanelli) que cuida de uma ONG (Movimento SOS Marumbi) e disponibilizou a documentação para efetivação do registro. Obrigado Cláudio! Atualmente está tudo em dia, já paguei o boleto, e o domínio está hospedado aqui em casa, na seguinte máquina: - Pentium 166 MHz - 32 MB RAM - HD 1.4 GBytes - Link de 300 Kbps (UPLOAD). Bom inicialmente, estarei disponibilizando usuário por ssh para o pessoal da lista, os interessados enviar e-mail em pvt. Agora gostaria de discutir com vocês sobre que rumos tomar, criação de novos projetos? Aguardo suas opiniões. Caso alguém queira colaborar financeiramente ou doar hardware, eu agradeço :). Necessito de um HD < 10GB pois este de 1.4GB não dá para nada. Abraços. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From gm em virtuasites.com.br Sun Sep 7 16:51:16 2003 From: gm em virtuasites.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] perl.org.br Message-ID: <004f01c3758a$2f1c0d10$0100a8c0@gm> Fabiano, Estou vendo a possibilidade de hospedar o PERL.ORG.BR em uma máquina na UFSC (Universidade Federal de Santa Catarina). Possuo uma máquina lá onde coordeno um projeto e com certeza não haverá problema em utilizarmos esta máquina para o Perl Brasil, já que utilizamos bastante o Perl no projeto. ;-P A vantagem é que a maquina é boa e o link cai direto na rede da RNP, ou seja, a placa de 10Mb praticamente cai em um backbone. Atenciosamente, Graciliano M. P. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20030907/d245dbb5/attachment.htm From frighetti em cascavel.pm.org Sun Sep 7 19:25:12 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] perl.org.br In-Reply-To: <004f01c3758a$2f1c0d10$0100a8c0@gm> References: <004f01c3758a$2f1c0d10$0100a8c0@gm> Message-ID: <20030907212512.69105d33.frighetti@cascavel.pm.org> On Sun, 7 Sep 2003 18:51:16 -0300 "Graciliano M. P." wrote: > Fabiano, > > Estou vendo a possibilidade de hospedar o PERL.ORG.BR em uma máquina > na UFSC (Universidade Federal de Santa Catarina). Possuo uma máquina > lá onde coordeno um projeto e com certeza não haverá problema em > utilizarmos esta máquina para o Perl Brasil, já que utilizamos > bastante o Perl no projeto. ;-P > > A vantagem é que a maquina é boa e o link cai direto na rede da RNP, > ou seja, a placa de 10Mb praticamente cai em um backbone. Olá Graciliano! Seria uma boa, que tipos de serviços poderia rodar nela? E-mail, HTTP, Mailling-List, SSH ? Abraços. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From frighetti em cascavel.pm.org Sun Sep 7 19:36:01 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Sites sobre Perl In-Reply-To: <200309070155.h871tYPB060613@rigel.pucrs.br> References: <200309070155.h871tYPB060613@rigel.pucrs.br> Message-ID: <20030907213601.780bd1c9.frighetti@cascavel.pm.org> Boa noite! Nosso amigo Flávio (fglock) levantou algo importante com relação aos sites sobre Perl, segue suas palavras: "Que tal levar para a lista a discussão de o que deve ter de conteúdo em cada site?" Ele está se referindo ao: Brasil.pm.org, Cascavel.pm.org e Perl.org.br. Bom, acredito que se centralizarmos os projetos brasileiros sobre Perl a comunidade só tem a ganhar sobre isto. Aguardo opiniões!!! Abraços. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From fglock em pucrs.br Mon Sep 8 08:18:22 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?Re=3A_=5BBrasil-pm=5D_Parou_porqu?= =?iso-8859-1?q?=EA=3F=3F?= References: <20030905163233.54863.qmail@web13006.mail.yahoo.com> <3F5C7CA3.403@terra.com.br> Message-ID: <3F5C819E.300C@pucrs.br> Luis Campos de Carvalho wrote: > > João Paulo wrote: > > pq a lista tá parada??? sds, João Paulo Fernandes > > > > Oi, JPF. > > É uma boa pergunta. > Eu acho que é falta de gente para conversar. [Nota: João Paulo refere-se à lista Brasil Perl Mongers] Pessoal: O problema é que nós temos _várias_ listas de mail! Há pelo menos duas listas brasileiras de Perl que são bastante ativas - a Cascavel (Perl Mongers) e a perlbr (Yahoo groups). Acho que no momento é inviável tecnicamente unificar estas listas, mas quem tiver interesse pode inscrever-se em todas. Na página inicial do http://brasil.pm.org/ tem o endereço das listas. Talvez seja melhor descontinuar a lista brasil-pm, para evitar que a confusão aumente mais? Poderíamos tentar redirecionar o endereço MX do brasil.pm.org para cascavel.pm.org. O que vocês acham? - Flavio S. Glock From lechamps em terra.com.br Mon Sep 8 08:23:46 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Sites sobre Perl References: <200309070155.h871tYPB060613@rigel.pucrs.br> <20030907213601.780bd1c9.frighetti@cascavel.pm.org> Message-ID: <3F5C82E2.9090308@terra.com.br> Fabiano Reese Righetti wrote: > Boa noite! > Nosso amigo Flávio (fglock) levantou algo importante com relação aos > sites sobre Perl, segue suas palavras: > "Que tal levar para a lista a discussão de o que deve ter de conteúdo > em cada site?" > Ele está se referindo ao: Brasil.pm.org, Cascavel.pm.org e > Perl.org.br. > Bom, acredito que se centralizarmos os projetos brasileiros sobre Perl a comunidade só tem a ganhar sobre isto. > Aguardo opiniões!!! A União sempre fez açuca^H^H^H^H^Ha força! =-] Monges de Perl Brasileiros, uní-vos!! Eu sou a favor de ter menos grupos e projetos maiores e mais fortes. Com nossa criatividade e sensibilidade características do povo brasileiro, podemos certamente nos tornar referência em Perl para o mundo todo. Como argumento extra, eu relato o que vejo na lista de londres: existe um núcleo baseado em Londres, mas o pessoal se increve de todas as partes do mundo... é muito interessante. E a diversidade diverte e traz bons projetos e novas idéias para o grupo. Temos bom potecial. Precisamos apenas de organização. E nada como centralização para conseguir organizar grupos pequenos como os nossos. Just my two pence. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Mon Sep 8 08:41:08 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: [Brasil-pm] Parou =?ISO-8859-1?Q?porqu=EA=3F?= =?ISO-8859-1?Q?=3F?= References: <20030905163233.54863.qmail@web13006.mail.yahoo.com> <3F5C7CA3.403@terra.com.br> <3F5C819E.300C@pucrs.br> Message-ID: <3F5C86F4.6020704@terra.com.br> Flavio S. Glock wrote: > Pessoal: > > O problema é que nós temos _várias_ listas de mail! > > Há pelo menos duas listas brasileiras de Perl que são bastante ativas - > a Cascavel (Perl Mongers) e a perlbr (Yahoo groups). > > Acho que no momento é inviável tecnicamente unificar estas listas, mas > quem tiver interesse pode inscrever-se em todas. Na página inicial do > http://brasil.pm.org/ tem o endereço das listas. Hum... eu fico me perguntando por que é inviável unificar as listas? Existe algum problema que nós todos juntos não consigamos resolver? > Talvez seja melhor descontinuar a lista brasil-pm, para evitar que a > confusão aumente mais? É uma idéia interessante. A lista não tem muitos usuários, mesmo, até onde eu sei... > Poderíamos tentar redirecionar o endereço MX do brasil.pm.org para > cascavel.pm.org. > O que vocês acham? [Óbvio Ululante] Isso não cadastraria as pessoas inscritas na lista Brasil-pm@mail.pm.org na lista Cascavel-pm@mail.pm.org. Como faremos a "conversão" dos emails postados lá, para cá e vice-versa? []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From fglock em pucrs.br Mon Sep 8 09:14:17 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: [Brasil-pm] Parou porquê? References: <20030905163233.54863.qmail@web13006.mail.yahoo.com> <3F5C7CA3.403@terra.com.br> <3F5C819E.300C@pucrs.br> <3F5C86F4.6020704@terra.com.br> Message-ID: <3F5C8EB9.6740@pucrs.br> Luis Campos de Carvalho wrote: > > Hum... eu fico me perguntando por que é inviável unificar as listas? > Existe algum problema que nós todos juntos não consigamos resolver? Seria necessário fazer um "gateway" entre as listas. Talvez através do servidor de mail do perl.org.br possamos fazer isso. > [Óbvio Ululante] Isso não cadastraria as pessoas inscritas na lista > Brasil-pm@mail.pm.org na lista Cascavel-pm@mail.pm.org. Como faremos a > "conversão" dos emails postados lá, para cá e vice-versa? Há somente 12 inscritos no Brasil-pm, incluindo os que estão nas duas listas. Acho que basta avisar as pessoas para inscreverem-se no Cascavel-pm. As listas passam a ser uma só, depois de fazer o alias. Não há necessidade de converter os "arquivos", porque está praticamente vazio. O maior problema é o perlbr@yahoogroups.com.br - neste caso, seria necessário utilizar um script de gateway. - Flavio S. Glock From lechamps em terra.com.br Mon Sep 8 10:19:07 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: [Brasil-pm] Parou =?ISO-8859-1?Q?porqu=EA=3F?= References: <20030905163233.54863.qmail@web13006.mail.yahoo.com> <3F5C7CA3.403@terra.com.br> <3F5C819E.300C@pucrs.br> <3F5C86F4.6020704@terra.com.br> <3F5C8EB9.6740@pucrs.br> Message-ID: <3F5C9DEB.8060908@terra.com.br> Flavio S. Glock wrote: > Luis Campos de Carvalho wrote: > >> Hum... eu fico me perguntando por que é inviável unificar as listas? >> Existe algum problema que nós todos juntos não consigamos resolver? > Seria necessário fazer um "gateway" entre as listas. Talvez através do > servidor de mail do perl.org.br possamos fazer isso. Olha, acho que isso pode inclusive dar um "senhor" projeto... =-] Eu não tenho idéia das implicações de interligar as pontes... preciso pensar. Mas a idéia básica é simples... >> [Óbvio Ululante] Isso não cadastraria as pessoas inscritas na lista >>Brasil-pm@mail.pm.org na lista Cascavel-pm@mail.pm.org. Como faremos a >>"conversão" dos emails postados lá, para cá e vice-versa? > > Há somente 12 inscritos no Brasil-pm, incluindo os que estão nas duas > listas. > Acho que basta avisar as pessoas para inscreverem-se no Cascavel-pm. > As listas passam a ser uma só, depois de fazer o alias. > Não há necessidade de converter os "arquivos", porque está praticamente > vazio. Legal. Acho que isso pode se tornar simplesmente uma questão administrativa, então... > O maior problema é o perlbr@yahoogroups.com.br - neste caso, seria > necessário utilizar um script de gateway. Humm... desconfio que teremos um problema: Como o pessoal que envia email para perlbr@yahoogroups.com.br vai saber que deve postar agora para outro endereço? Penso que o nosso problema é não ter de "obrigar" a migração de tantos usuários de uma lista para outra, certo? Como vamos interceptar emails para a lista @yahoogroups.com.br e redirecioná-los para a @perl.org.br? Já projetando um "gateway" para os emails... []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From fglock em pucrs.br Mon Sep 8 10:28:57 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: [Brasil-pm] Parou porquê? References: <20030905163233.54863.qmail@web13006.mail.yahoo.com> <3F5C7CA3.403@terra.com.br> <3F5C819E.300C@pucrs.br> <3F5C86F4.6020704@terra.com.br> <3F5C8EB9.6740@pucrs.br> Message-ID: <3F5CA039.35B7@pucrs.br> Luis escreveu: > Humm... desconfio que teremos um problema: > Como o pessoal que envia email para perlbr@yahoogroups.com.br vai saber que deve postar agora para outro endereço? > Penso que o nosso problema é não ter de "obrigar" a migração de tantos usuários de uma lista para outra, certo? > Como vamos interceptar emails para a lista @yahoogroups.com.br e redirecioná-los para a @perl.org.br? > > Já projetando um "gateway" para os emails... Basta criar um "usuario" que recebe os mails de uma lista e re-envia para a outra lista. Talvez nem precise fazer um script, basta configurar um "forward" no servidor de mail. - Flavio S. Glock From lechamps em terra.com.br Mon Sep 8 12:13:02 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: [Brasil-pm] Parou =?ISO-8859-1?Q?porqu=EA=3F?= References: <20030905163233.54863.qmail@web13006.mail.yahoo.com> <3F5C7CA3.403@terra.com.br> <3F5C819E.300C@pucrs.br> <3F5C86F4.6020704@terra.com.br> <3F5C8EB9.6740@pucrs.br> <3F5CA039.35B7@pucrs.br> Message-ID: <3F5CB89E.5040104@terra.com.br> Flavio S. Glock wrote: > Luis escreveu: > >> Como vamos interceptar emails para a lista @yahoogroups.com.br e >> redirecioná-los para a @perl.org.br? > > Basta criar um "usuario" que recebe os mails de uma lista e re-envia > para a outra lista. Talvez nem precise fazer um script, basta configurar > um "forward" no servidor de mail. Mas isso resolve apenas a "vinda" dos emails para a @perl.org.br. Como faremos para que alguém inscrito nas listas @perl.org.br possa responder a uma pessoa inscrita apenas na perlbr@yahoogroups.com? Se simplesmente interligarmos a lista com um usuario de cá para lá, teremos um loop e ferraremos com as duas listas, com mail-storm, assim que o primeiro desavisado postar qualquer coisa... O problema parece mais divertido a cada minuto... Especulando... []'Z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Thu Sep 11 08:53:50 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Chamada de Artigos para Workshop =?iso-8859-1?q?Alem=E3o!!_=5BFwd?= =?iso-8859-1?q?=3A_Call_For_Papers_for_6th_German_Perl-Workshop=5D?= Message-ID: <3F607E6E.6060105@terra.com.br> Pessoal Nicolas Clark está divulgando um Call For Papers para o "Sexto Workshop de Perl Alemão", a se realizar de 25 a 27 de fevereiro de 2004. Resumo em portugues: O Sexto Perl-Workshop Alemão terá lugar a partir de quarta, 25.02.2004 até sexta, 27.02.2004 e você está convidado a enviar propostas para palestras ou tutoriais. Este workshop será focado em "Ferramentas e Métodos para Devenvolvimento de Software Profissional (em Perl)", mas nós aceitaremos alegremente qualquer proposta para palestras interessantes relacionadas ao Perl. Uma versão extendida deste Call for Papers (CfP) estará disponível no website do workshop em www.perl-workshop.de em breve. Assuntos sugeridos e em que o pessoal está interessado este ano são: * Debugging (usando as ferramentas de debugging existentes) * Testes * Refactoring [NdT: Alguém sabe traduzir este termo técnico?] * Documentação (geração automática) * Geração de Código (a partir das especificações) * Seu módulo favorito (qualquer que seja ele) Mas, como o resumo diz, qualquer coisa interessante é bem-vinda. Para mais detalhes contatar wsorga@perl-workshop.de Segue a mensagem original, abaixo, postada na lista de Perl de Londres há alguns minutos atrás. []'z!4All. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -------- Original Message -------- From: Nicholas Clark Subject: Call For Papers for 6th German Perl-Workshop Date: Wed, 10 Sep 2003 22:50:22 +0100 Juergen asked me if I could forward the call for papers for the 6th German Perl Workshop to the london.pm list. He's hoping that some of the people who spoke with him in Paris about the workshop will be able to make it to Germany next year (Bonn, I assume, as for previous years) The English abstract of the announcement is: Call for Papers / 6. Deutscher Perl-Workshop / 25.-27.02.2004 Ort: wird noch bekannt gegeben / Location: to be announced English Abstract: the 6th German Perl-Workshop will take place from Wednesday, 25.02.2004 to Friday, 27.02.2004 and you are invited to submit proposals for talks or tutorials. This workshop will focus on "Tools and Methods for Professional Software Development (in Perl)" but we will happily accept any proposal for interesting talks related to Perl. An extended version of this CfP will be available on the workshop's site at www.perl-workshop.de soon. Topics the CFP suggested that they are interested in this year are * Debugging (use of existing debugging tools) * Testing * Refactoring * Documentation (automatic generation) * Generation of code (code from specifications) * My favourite module but as the abstract says, anything interesting is good. For more details contact wsorga@perl-workshop.de The initial deadline (at least for getting in contact) is 28th September, so there's not that long. I'm not confident of my translation of the various subsequent deadlines, but the German Perl Workshop folks like to try to be early with getting their abstracts/proceedings book done. Nicholas Clark From frighetti em cascavel.pm.org Thu Sep 11 10:37:58 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Fw: Feira de Tecnologia Message-ID: <20030911123758.0e0e9524.frighetti@cascavel.pm.org> Begin forwarded message: Date: 11 Sep 2003 03:06:22 -0000 From: "Brenno J. Oliveira" To: cascavel@pm.org Subject: Feira de Tecnologia Olá, Sou aluno da Faculdade de Tecnologia de Taquaritinga (FATEC) e faço parte da comissão de organização da FETEC - Feira de Tecnologia, um evento que ocorre todo o ano no mês de Outubro, neste ano específico nos dias 20, 21 e 22. Nosso evento tem como objetivo trazer para nossa instituição palestras, cursos, workshops e muita informação relacionada a área de pesquisa e desenvolvimento tecnológico. Taquaritinga está situado em uma macro-região, a 70 km de Araraquara, 86 Km de Ribeirão Preto e 100 Km de S. J. do Rio Preto. (interior de sao paulo) Este e-mail tem como objetivo convidar o alguem da revista a participar de nosso evento oferecendo palestras, e/ou cursos relacionados a área de tecnologia (no caso de vcs perl). Como somos uma instituição pública, e nosso evento não possui fins lucrativos, o que podemos oferecer é o pagamento de todas as despesas relacionadas ao deslocamento e estadia caso haja necessidade. As palestras ou cursos deverão ser relacionadas as áreas de tecnologia da informação e tecnologia de produção, por isso vocêe estao sendo contactados. Caso você se interesse e esperamos muito que sim, mande me um e-mail de dúvidas ou confirmação o mais rápido possível, pois infelizmente estamos com pouco tempo e tenho que entregar as propostas até o dia 12/09. Pedimos também a sua colaboração caso seja de seu interesse repassar esta mensagem para conhecidos que também se interessariam pelo evento. Meu nome é Brenno Oliveira, e-mail freestyle@i386.net e meu telefone de contato é (16) 3253 7110, ou (16) 3252 5250 da Fatec Taquaritinga. Obrigado, e contamos muito com vcs From vivan em dim.fm.usp.br Thu Sep 11 16:02:33 2003 From: vivan em dim.fm.usp.br (Adriano Vivan Borro) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Chamada de Artigos para WorkshopAlemão!! [Fwd: Call For Papers for 6th German Perl-Workshop] References: <3F607E6E.6060105@terra.com.br> Message-ID: <3F60E2E8.A7469488@dim.fm.usp.br> Nossa, Jah tava pensando q nossa lista tinha ido pro beleleu :-D Enfim. Eu trabalho em um centro de pesquisas relacionado ao Genoma Humano, na area de Bioinformatica. Na verdade, isso eh relacionado a Genetica, porem, estah sendo muito utilizada a Perl, por motivos obvios. Nao sei c algo a este nivel seria interessante, jah q nao eh extritamente sobre programacao (mas eh uma outra area da tecnologia em q todos nos podemos nos empregar :-D ). Aguardo comentarios. E aproveitando a oportunidade, tenho a seguinte duvida... Quero verificar em uma frase, qual seu n-esimo elemento, contando d tras para frente. Olhando o exemplo q fiz, parece obvio e mais facil indicar apenas o n-esimo elemento. Porem, tenho um problema nas maos de maior nivel, e preciso resolver o problema desta forma. Abaixo segue a rotina q escrevi, que supre as necessidades. Porem, como estou iniciando na Perl, gostaria da opiniao d vcs para saber c existe uma maneira mais facil e eficiente de resolver este problema (fazer uma leitura de tras pra frente em uma variavel). Agradeco desde jah a ajuda. Ae vai ela: #!/bin/perl $texto="Primeira frase. Segunda frase. Terceira frase. Quarta frase. Quinta frase. Sexta frase. Setima frase. Oitava frase. Nona frase. Decima frase. Decima-Primeira frase. Decima-Segunda frase. Decima-Terceira frase. Decima-Quarta frase. Decima-Quinta frase. Decima-Sexta frase. Decima-Setima frase. Decima-Oitava frase. Decima-Nona frase. Vigesima frase."; $x=-1; @divide=split /\. /,$texto; while ($divide[$x]!~/Segunda/) { $x--; } print $divide[$x]."\n"; Desde jah agradeco. []'s, Adriano. Luis Campos de Carvalho wrote: > Pessoal > > Nicolas Clark está divulgando um Call For Papers para o "Sexto > Workshop de Perl Alemão", a se realizar de 25 a 27 de fevereiro de 2004. > > Resumo em portugues: O Sexto Perl-Workshop Alemão terá lugar a > partir de quarta, 25.02.2004 até sexta, 27.02.2004 e você está convidado > a enviar propostas para palestras ou tutoriais. Este workshop será > focado em "Ferramentas e Métodos para Devenvolvimento de Software > Profissional (em Perl)", mas nós aceitaremos alegremente qualquer > proposta para palestras interessantes relacionadas ao Perl. Uma versão > extendida deste Call for Papers (CfP) estará disponível no website do > workshop em www.perl-workshop.de em breve. > > Assuntos sugeridos e em que o pessoal está interessado este ano são: > > * Debugging (usando as ferramentas de debugging existentes) > * Testes > * Refactoring [NdT: Alguém sabe traduzir este termo técnico?] > * Documentação (geração automática) > * Geração de Código (a partir das especificações) > * Seu módulo favorito (qualquer que seja ele) > > Mas, como o resumo diz, qualquer coisa interessante é bem-vinda. > Para mais detalhes contatar wsorga@perl-workshop.de > > Segue a mensagem original, abaixo, postada na lista de Perl de > Londres há alguns minutos atrás. > > []'z!4All. > -- > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > Luis Campos de Carvalho is Computer Scientist, > PerlMonk [SiteDocClan], Cascavel-pm Moderator, > Unix Sys Admin && Certified Oracle DBA > http://br.geocities.com/monsieur_champs/ > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > -------- Original Message -------- > From: Nicholas Clark > Subject: Call For Papers for 6th German Perl-Workshop > Date: Wed, 10 Sep 2003 22:50:22 +0100 > > Juergen asked me if I could forward the call for papers for the 6th > German Perl Workshop to the london.pm list. He's hoping that some of > the people who spoke with him in Paris about the workshop will be able > to make it to Germany next year (Bonn, I assume, as for previous years) > > The English abstract of the announcement is: > > Call for Papers / 6. Deutscher Perl-Workshop / 25.-27.02.2004 > Ort: wird noch bekannt gegeben / Location: to be announced > > English Abstract: the 6th German Perl-Workshop will take place from > Wednesday, 25.02.2004 to Friday, 27.02.2004 and you are invited to submit > proposals for talks or tutorials. This workshop will focus on "Tools and > Methods for Professional Software Development (in Perl)" but we will > happily accept any proposal for interesting talks related to Perl. An > extended version of this CfP will be available on the workshop's site at > www.perl-workshop.de soon. > > Topics the CFP suggested that they are interested in this year are > > * Debugging (use of existing debugging tools) > * Testing > * Refactoring > * Documentation (automatic generation) > * Generation of code (code from specifications) > * My favourite module > > but as the abstract says, anything interesting is good. > > For more details contact wsorga@perl-workshop.de > > The initial deadline (at least for getting in contact) is 28th September, > so there's not that long. > > I'm not confident of my translation of the various subsequent deadlines, > but the German Perl Workshop folks like to try to be early with getting > their abstracts/proceedings book done. > > Nicholas Clark > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > > -------------------------- > Esta mensagem foi verificada > pelo sistema de antivírus DIM e > acredita-se estar livre de Virus. > Virus data file v4292 created Sep 10 2003 From sikora em inova.com.br Thu Sep 11 15:40:59 2003 From: sikora em inova.com.br (Rodolfo Sikora) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Chamada de Artigos para =?ISO-8859-1?Q?WorkshopAlem=E3o?=!! [Fwd: Call For Papers for 6th German Perl-Workshop] References: <3F60E2E8.A7469488@dim.fm.usp.br> Message-ID: <20030911204038.3972.qmail@sake-local.inova.com.br> Se eu estivesse em SP na época do evento eu adoraria participar. Sobre a sua questão, não entendi muito bem qdo rodei teu exemplo. O que vc chama de elemento? Uma das frases? Em perl tem n maneiras de fazer qquer coisa :) Outra maneira de fazer o q vc fez e pegar o numero de elementos do teu array e subtrair quantos vc quiser e depois mandar imprimir o elemento. []s ================= >De:Adriano Vivan Borro >Para:Cascavel Perl Mongers >Assunto:Re: [Cascavel-pm] Chamada de Artigos para WorkshopAlemão!! [Fwd: Call For Papers for 6th German Perl-Workshop] > >Nossa, > >Jah tava pensando q nossa lista tinha ido pro >beleleu :-D > >Enfim. Eu trabalho em um centro de pesquisas >relacionado ao Genoma Humano, na >area de Bioinformatica. Na verdade, isso eh >relacionado a Genetica, porem, >estah sendo muito utilizada a Perl, por motivos >obvios. Nao sei c algo a este >nivel seria interessante, jah q nao eh >extritamente sobre programacao (mas eh >uma outra area da tecnologia em q todos nos >podemos nos empregar :-D ). Aguardo >comentarios. > >E aproveitando a oportunidade, tenho a seguinte >duvida... > >Quero verificar em uma frase, qual seu n-esimo >elemento, contando d tras para >frente. Olhando o exemplo q fiz, parece obvio e >mais facil indicar apenas o >n-esimo elemento. Porem, tenho um problema nas >maos de maior nivel, e preciso >resolver o problema desta forma. Abaixo segue a >rotina q escrevi, que supre as >necessidades. Porem, como estou iniciando na >Perl, gostaria da opiniao d vcs >para saber c existe uma maneira mais facil e >eficiente de resolver este >problema (fazer uma leitura de tras pra frente >em uma variavel). Agradeco desde >jah a ajuda. Ae vai ela: > > >#!/bin/perl >$texto="Primeira frase. Segunda frase. Terceira >frase. Quarta frase. Quinta >frase. Sexta frase. Setima frase. Oitava frase. >Nona frase. Decima frase. >Decima-Primeira frase. Decima-Segunda frase. >Decima-Terceira frase. >Decima-Quarta frase. Decima-Quinta frase. >Decima-Sexta frase. Decima-Setima >frase. Decima-Oitava frase. Decima-Nona frase. >Vigesima frase."; >$x=-1; >@divide=split /\. /,$texto; >while ($divide[$x]!~/Segunda/) >{ $x--; >} >print $divide[$x]."\n"; > > > >Desde jah agradeco. > >[]'s, >Adriano. > > >Luis Campos de Carvalho wrote: > >> Pessoal >> >> Nicolas Clark está divulgando um Call For >Papers para o "Sexto >> Workshop de Perl Alemão", a se realizar de 25 >a 27 de fevereiro de 2004. >> >> Resumo em portugues: O Sexto Perl-Workshop >Alemão terá lugar a >> partir de quarta, 25.02.2004 até sexta, >27.02.2004 e você está convidado >> a enviar propostas para palestras ou >tutoriais. Este workshop será >> focado em "Ferramentas e Métodos para >Devenvolvimento de Software >> Profissional (em Perl)", mas nós aceitaremos >alegremente qualquer >> proposta para palestras interessantes >relacionadas ao Perl. Uma versão >> extendida deste Call for Papers (CfP) estará >disponível no website do >> workshop em www.perl-workshop.de em breve. >> >> Assuntos sugeridos e em que o pessoal está >interessado este ano são: >> >> * Debugging (usando as ferramentas de >debugging existentes) >> * Testes >> * Refactoring [NdT: Alguém sabe traduzir >este termo técnico?] >> * Documentação (geração automática) >> * Geração de Código (a partir das >especificações) >> * Seu módulo favorito (qualquer que seja >ele) >> >> Mas, como o resumo diz, qualquer coisa >interessante é bem-vinda. >> Para mais detalhes contatar >wsorga@perl-workshop.de >> >> Segue a mensagem original, abaixo, postada >na lista de Perl de >> Londres há alguns minutos atrás. >> >> []'z!4All. >> -- >> >=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- >= >> Luis Campos de Carvalho is Computer >Scientist, >> PerlMonk [SiteDocClan], Cascavel-pm >Moderator, >> Unix Sys Admin && Certified Oracle DBA >> http://br.geocities.com/monsieur_champs/ >> >=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- >= >> >> -------- Original Message -------- >> From: Nicholas Clark >> Subject: Call For Papers for 6th German >Perl-Workshop >> Date: Wed, 10 Sep 2003 22:50:22 +0100 >> >> Juergen asked me if I could forward the call >for papers for the 6th >> German Perl Workshop to the london.pm list. >He's hoping that some of >> the people who spoke with him in Paris about >the workshop will be able >> to make it to Germany next year (Bonn, I >assume, as for previous years) >> >> The English abstract of the announcement is: >> >> Call for Papers / 6. Deutscher >Perl-Workshop / 25.-27.02.2004 >> Ort: wird noch bekannt gegeben / >Location: to be announced >> >> English Abstract: the 6th German >Perl-Workshop will take place from >> Wednesday, 25.02.2004 to Friday, 27.02.2004 >and you are invited to submit >> proposals for talks or tutorials. This >workshop will focus on "Tools and >> Methods for Professional Software >Development (in Perl)" but we will >> happily accept any proposal for interesting >talks related to Perl. An >> extended version of this CfP will be >available on the workshop's site at >> www.perl-workshop.de soon. >> >> Topics the CFP suggested that they are >interested in this year are >> >> * Debugging (use of existing debugging tools) >> * Testing >> * Refactoring >> * Documentation (automatic generation) >> * Generation of code (code from >specifications) >> * My favourite module >> >> but as the abstract says, anything interesting >is good. >> >> For more details contact >wsorga@perl-workshop.de >> >> The initial deadline (at least for getting in >contact) is 28th September, >> so there's not that long. >> >> I'm not confident of my translation of the >various subsequent deadlines, >> but the German Perl Workshop folks like to try >to be early with getting >> their abstracts/proceedings book done. >> >> Nicholas Clark >> >> >_______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm@mail.pm.org >> >http://cascavel.pm.org/mailman/listinfo/cascavel >-pm >> >> -------------------------- >> Esta mensagem foi verificada >> pelo sistema de antivírus DIM e >> acredita-se estar livre de Virus. >> Virus data file v4292 created Sep 10 2003 > >_______________________________________________ >Cascavel-pm mailing list >Cascavel-pm@mail.pm.org >http://cascavel.pm.org/mailman/listinfo/cascavel >-pm Rodolfo Sikora - Desenvolvimento e Operação Departamento de Operações e Tecnologia Inova Tecnologias - http://www.inova.com.br **************************************************** *Velop* - administração, controle e monitoramento da sua comunicação na Internet. http://www.inova.com.br From lechamps em terra.com.br Thu Sep 11 16:36:19 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Call for Papers + =?iso-8859-1?q?D=FAvida_de_Biotecnologia_=5BWas?= =?iso-8859-1?q?=3A_Chamada_de_Artigos_para_WorkshopAlem=E3o!!_=5BFwd=3A_C?= =?iso-8859-1?q?all_For_Papers_for_6th_German_Perl-Workshop=5D?= References: <3F607E6E.6060105@terra.com.br> <3F60E2E8.A7469488@dim.fm.usp.br> Message-ID: <3F60EAD3.9090708@terra.com.br> Adriano Vivan Borro wrote: > Nossa, > Jah tava pensando q nossa lista tinha ido pro beleleu :-D Não, ainda não... estamos nos organizando. Você deveria ler mais emails. Temos registrado agora o perl.org.br, e o brasil.pm.org, e ainda o cascavel.pm.org, e estamos crescendo... =-] > Enfim. Eu trabalho em um centro de pesquisas relacionado ao Genoma Humano, na > area de Bioinformatica. Na verdade, isso eh relacionado a Genetica, porem, > estah sendo muito utilizada a Perl, por motivos obvios. Nao sei c algo a este > nivel seria interessante, jah q nao eh extritamente sobre programacao (mas eh > uma outra area da tecnologia em q todos nos podemos nos empregar :-D ). Aguardo > comentarios. Tenho certeza de que biotecnologia interessa a todos aqui e na Europa. Contate o senhor Nicolas Clark, diga a ele como você chegou e ofereça papers. Tenho certeza de que ele vai gostar. > E aproveitando a oportunidade, tenho a seguinte duvida... > > Quero verificar em uma frase, qual seu n-esimo elemento, contando d tras para > frente. Olhando o exemplo q fiz, parece obvio e mais facil indicar apenas o > n-esimo elemento. Porem, tenho um problema nas maos de maior nivel, e preciso > resolver o problema desta forma. Abaixo segue a rotina q escrevi, que supre as > necessidades. Porem, como estou iniciando na Perl, gostaria da opiniao d vcs > para saber c existe uma maneira mais facil e eficiente de resolver este > problema (fazer uma leitura de tras pra frente em uma variavel). Agradeco desde > jah a ajuda. Ae vai ela: Desculpe, mas eu não consegui entender qual o problema. Você está procurando todos os elementos de uma frase, na ordem inversa de ocorrência, que contenham uma seqüência de caracteres arbitrária? Que tal um pouco mais de feed-back, para que o pessoal mais poderoso da lista se interesse um pouco pelo problema? Temos gente muito experiente aqui, e com bons níveis de graduação. Tenho certeza de que um pouco mais de informação não prejudicará o problema. Em especial, o que você pediu que fosse executado pode ser escrito assim: no lugar de my $x=-1; my @divide = split /\. /, $texto; while( $divide[$x] !~ qr/Segunda/ ) { $x--; } print $divide[$x]."\n"; use apenas print map "$_\n", reverse do{my@d;push@d,$1 while$texto=~m/([^.]+Segunda[^.]+\.)/g;@d;}; E, se isso ainda não resolver seu problema, por favor não deixe de postar novamente para a lista. =-] É bom jogar Perl Golf de vez em quando... -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From vivan em dim.fm.usp.br Fri Sep 12 14:18:10 2003 From: vivan em dim.fm.usp.br (Adriano Vivan Borro) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Call for Papers +Dúvida de Biotecnologia [Was: Chamada de Artigos para WorkshopAlemão!! [Fwd: Call For Papers for 6th German Perl-Workshop] References: <3F607E6E.6060105@terra.com.br> <3F60E2E8.A7469488@dim.fm.usp.br> <3F60EAD3.9090708@terra.com.br> Message-ID: <3F621BF2.42CD8761@dim.fm.usp.br> Legal. Vou procurar o Sr. Nicolas com certeza. Tks. Qto a minha duvida, eh o seguinte. A frase q estou verificando eh na verdade um gene. E como todos sabem, um gene eh uma frase em um alfabeto de 4 caracteres (nao deem essa definicao a um biologo ou biomedico, cnao eles podem ateh brigar. :-D ). Ae, o q acontece... Eu nunca sei qual eh o tamanho dessa frase. E preciso cortar ( ou como eles tratam... "clivar" ) o gene em pontos especificos. De todos estes pedacos de gene, tenho q retirar o ultimo, o penultimo, e assim por diante, ateh achar determinada sequencia de caracteres. Tenho, entao, que quero cortar minha frase em toda sequencia TACA por exemplo. E quero achar a seguencia CAGA. Vai, entao um "exemplo de gene": AGATAATACAATATACAGGCAGACGCATACAGGGATACAGACCTACAATTCGTACACCGCAGATACAGACCAGC Entao, executando um split /TACA/,$seq , supondo $seq a variavel em q cologuei meu "gene", temos: AGATAA ATA GGCAGACGCA GGGA GACC ATTCG CCGCAGA GACCAGC Lembrando q a cada execucao, tenho um gene diferente a ser analizado, que tem o tamanho diferente e terao diferentes numeros de clivagem, ou seja, nao sei nunca o tamanho e nem o numero de elementos do meu array. A sequencia procurada estah, entao, em $seq[-2] e em $seq[-6], pois estou contando do final para o inicio. Mas a que quero eh a ultima ocorrencia, entao $seq[-2]. A saida vai ser entao, o pedaco de gene q tem a sequencia procurada, ou seja, CCGCAGA . Com isso, finalizo minha rotina, e serah feita a leitura de outro gene. Espero ter conseguido, desta vez, explicar meu problema. Ah.... A rotina... Tah ae embaixo, mas vai ae d novo pra nao ter q ficar dando scrool, q eh um saco: $x=-1; @divide = split /TACA/, $seq; while( $divide[$x] !~ qr/CAGA/ ) { $x--; } print $divide[$x]."\n"; E tb uma coisa... Existe alguma diferenca entre usar $divide[$x] e @divide[$x] ? Pq eu testei isso e, ao menos no compilador q uso aki, deu o mesmo resultado.... []'s Luis Campos de Carvalho wrote: > Adriano Vivan Borro wrote: > > Nossa, > > Jah tava pensando q nossa lista tinha ido pro beleleu :-D > > Não, ainda não... estamos nos organizando. > Você deveria ler mais emails. > Temos registrado agora o perl.org.br, e o brasil.pm.org, e ainda o > cascavel.pm.org, e estamos crescendo... =-] > > > Enfim. Eu trabalho em um centro de pesquisas relacionado ao Genoma Humano, na > > area de Bioinformatica. Na verdade, isso eh relacionado a Genetica, porem, > > estah sendo muito utilizada a Perl, por motivos obvios. Nao sei c algo a este > > nivel seria interessante, jah q nao eh extritamente sobre programacao (mas eh > > uma outra area da tecnologia em q todos nos podemos nos empregar :-D ). Aguardo > > comentarios. > > Tenho certeza de que biotecnologia interessa a todos aqui e na Europa. > Contate o senhor Nicolas Clark, diga a ele como você chegou e ofereça > papers. Tenho certeza de que ele vai gostar. > > > E aproveitando a oportunidade, tenho a seguinte duvida... > > > > Quero verificar em uma frase, qual seu n-esimo elemento, contando d tras para > > frente. Olhando o exemplo q fiz, parece obvio e mais facil indicar apenas o > > n-esimo elemento. Porem, tenho um problema nas maos de maior nivel, e preciso > > resolver o problema desta forma. Abaixo segue a rotina q escrevi, que supre as > > necessidades. Porem, como estou iniciando na Perl, gostaria da opiniao d vcs > > para saber c existe uma maneira mais facil e eficiente de resolver este > > problema (fazer uma leitura de tras pra frente em uma variavel). Agradeco desde > > jah a ajuda. Ae vai ela: > > Desculpe, mas eu não consegui entender qual o problema. > Você está procurando todos os elementos de uma frase, na ordem > inversa de ocorrência, que contenham uma seqüência de caracteres > arbitrária? > > Que tal um pouco mais de feed-back, para que o pessoal mais poderoso > da lista se interesse um pouco pelo problema? Temos gente muito > experiente aqui, e com bons níveis de graduação. Tenho certeza de que um > pouco mais de informação não prejudicará o problema. > > Em especial, o que você pediu que fosse executado pode ser escrito > assim: no lugar de > > my $x=-1; > my @divide = split /\. /, $texto; > while( $divide[$x] !~ qr/Segunda/ ) { > $x--; > } > print $divide[$x]."\n"; > > use apenas > > print map "$_\n", reverse > do{my@d;push@d,$1 while$texto=~m/([^.]+Segunda[^.]+\.)/g;@d;}; > > E, se isso ainda não resolver seu problema, por favor não deixe de > postar novamente para a lista. =-] É bom jogar Perl Golf de vez em > quando... > > -- > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > Luis Campos de Carvalho is Computer Scientist, > PerlMonk [SiteDocClan], Cascavel-pm Moderator, > Unix Sys Admin && Certified Oracle DBA > http://br.geocities.com/monsieur_champs/ > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > > -------------------------- > Esta mensagem foi verificada > pelo sistema de antivírus DIM e > acredita-se estar livre de Virus. > Virus data file v4292 created Sep 10 2003 From glasswalk3r em yahoo.com.br Fri Sep 12 12:38:48 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Call for Papers +Dúvida de Biotecnologia [Was: Chamada de Artigos para WorkshopAlemão!! [Fwd: Call For Papers for 6th German Perl-Workshop] In-Reply-To: <3F621BF2.42CD8761@dim.fm.usp.br> Message-ID: <20030912173848.31192.qmail@web20205.mail.yahoo.com> Eu não ganho comissão, mas como ninguém comentou nada sobre eu me sinto obrigado a falar. A O´Reilly tem um livro que trata especificamente sobre esse assunto, usando também Perl. A vantagem que eu vejo é você pode verificar exemplos de códigos aplicados a essa área (um tanto restrita para a maioria de nós, eu diria) já que o livro é bem específico. O livro tem tradução para o português já: só não o nome. :-) Quanto a expressão $divide[$x], o Perl substitui o $x por um valor, que servirá de índice para o array @divide. Na segunda @divide[$x], você está usando uma referência no saco. Se for usar referências, tome cuidado para não confundir uma coisa com outra. []´s Alceu --- Adriano Vivan Borro escreveu: > Legal. Vou procurar o Sr. Nicolas com certeza. Tks. > > Qto a minha duvida, eh o seguinte. A frase q estou > verificando eh na verdade um > gene. E como todos sabem, um gene eh uma frase em um > alfabeto de 4 caracteres (nao > deem essa definicao a um biologo ou biomedico, cnao > eles podem ateh brigar. :-D ). > Ae, o q acontece... Eu nunca sei qual eh o tamanho > dessa frase. E preciso cortar ( > ou como eles tratam... "clivar" ) o gene em pontos > especificos. De todos estes > pedacos de gene, tenho q retirar o ultimo, o > penultimo, e assim por diante, ateh > achar determinada sequencia de caracteres. > > Tenho, entao, que quero cortar minha frase em toda > sequencia TACA por exemplo. E > quero achar a seguencia CAGA. > > Vai, entao um "exemplo de gene": > > AGATAATACAATATACAGGCAGACGCATACAGGGATACAGACCTACAATTCGTACACCGCAGATACAGACCAGC > > Entao, executando um split /TACA/,$seq , supondo > $seq a variavel em q cologuei meu > "gene", temos: > > AGATAA ATA GGCAGACGCA > GGGA GACC > ATTCG CCGCAGA GACCAGC > > Lembrando q a cada execucao, tenho um gene diferente > a ser analizado, que tem o > tamanho diferente e terao diferentes numeros de > clivagem, ou seja, nao sei nunca o > tamanho e nem o numero de elementos do meu array. > > A sequencia procurada estah, entao, em $seq[-2] e em > $seq[-6], pois estou contando > do final para o inicio. Mas a que quero eh a ultima > ocorrencia, entao $seq[-2]. A > saida vai ser entao, o pedaco de gene q tem a > sequencia procurada, ou seja, CCGCAGA > . Com isso, finalizo minha rotina, e serah feita a > leitura de outro gene. > > Espero ter conseguido, desta vez, explicar meu > problema. > > Ah.... A rotina... Tah ae embaixo, mas vai ae d novo > pra nao ter q ficar dando > scrool, q eh um saco: > > $x=-1; > @divide = split /TACA/, $seq; > while( $divide[$x] !~ qr/CAGA/ ) { > $x--; > } > print $divide[$x]."\n"; > > E tb uma coisa... Existe alguma diferenca entre usar > $divide[$x] e @divide[$x] ? Pq > eu testei isso e, ao menos no compilador q uso aki, > deu o mesmo resultado.... > > []'s > _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Fri Sep 12 14:25:09 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] =?ISO-8859-1?Q?D=FAvida_de_Biotecnologia?= References: <3F607E6E.6060105@terra.com.br> <3F60E2E8.A7469488@dim.fm.usp.br> <3F60EAD3.9090708@terra.com.br> <3F621BF2.42CD8761@dim.fm.usp.br> Message-ID: <3F621D95.8000002@terra.com.br> Adriano Vivan Borro wrote: > Legal. Vou procurar o Sr. Nicolas com certeza. Tks. Bom congresso na Alemanha para você! Mande lembranças ao Nick por mim! > Qto a minha duvida, eh o seguinte. A frase q estou verificando eh na verdade um > gene. E como todos sabem, um gene eh uma frase em um alfabeto de 4 caracteres (nao > deem essa definicao a um biologo ou biomedico, cnao eles podem ateh brigar. :-D ). > Ae, o q acontece... Eu nunca sei qual eh o tamanho dessa frase. E preciso cortar ( > ou como eles tratam... "clivar" ) o gene em pontos especificos. De todos estes > pedacos de gene, tenho q retirar o ultimo, o penultimo, e assim por diante, ateh > achar determinada sequencia de caracteres. Uau!!! Agora isso parece um problema interessante!! =-] Obrigado por perder seu tempo explicando essas coisas! > Tenho, entao, que quero cortar minha frase em toda sequencia TACA por exemplo. E > quero achar a seguencia CAGA. > > Vai, entao um "exemplo de gene": > > AGATAATACAATATACAGGCAGACGCATACAGGGATACAGACCTACAATTCGTACACCGCAGATACAGACCAGC > > Entao, executando um split /TACA/,$seq , supondo $seq a variavel em q cologuei meu > "gene", temos: > > AGATAA ATA GGCAGACGCA GGGA GACC > ATTCG CCGCAGA GACCAGC Eu particularmente acho o split() fraco e caro. Provavelmente você poderia tentar uma expressão regular com múltiplos matches, e um loop while, assim: my @genes; my $gene = q.AGATAATACAATATACAGGCA. . q.GACGCATACAGGGATACAGAC. . q.CTACAATTCGTACACCGCAGA. . q.TACAGACCAGC. # "Enfileira" os genes encontrados em ordem inversa... unshift @genes, $1 while( $gene =~ qr/([ACGT]+?)TACA/g ); # Seleciona os que interessam, separa o primeiro. my $choice = (grep qr/CAGA/, @genes)[0]; __END__ Poderia ser feito assim, também: my $gene = q.AGATAATACAATATACAGGCA. . q.GACGCATACAGGGATACAGAC. . q.CTACAATTCGTACACCGCAGA. . q.TACAGACCAGC. my $choice = ( grep qr/CAGA/, reverse split( qr/TACA/, $genes ) )[0]; __END__ E, finalmente, para resolver seu problema para sempre, a gente pode criar uma funçãozinha: sub clivar{ my( $Splitter, $LookingFor, $Sequence ) = ( shift, shift, shift ); return (grep qr/$LookingFor/o, reverse split(qr/$Splitter/o, $genes))[0]; } > Lembrando q a cada execucao, tenho um gene diferente a ser analizado, que tem o > tamanho diferente e terao diferentes numeros de clivagem, ou seja, nao sei nunca o > tamanho e nem o numero de elementos do meu array. Ok, sem problemas. Tenho certeza de que a funçãozinha resolve o seu "abacaxi"... =-] > A sequencia procurada estah, entao, em $seq[-2] e em $seq[-6], pois estou contando > do final para o inicio. Mas a que quero eh a ultima ocorrencia, entao $seq[-2]. A > saida vai ser entao, o pedaco de gene q tem a sequencia procurada, ou seja, CCGCAGA > . Com isso, finalizo minha rotina, e serah feita a leitura de outro gene. Legal!! =-] Eu gostei deste problema! Tem mais assim para resolver? A gente poderia começar um projetinho open-source... criar bibliotecas de biotecnologia Brasileiras, para o pessoal usar em pesquisa... Se bem que existe muita coisa pronta no CPAN... > Espero ter conseguido, desta vez, explicar meu problema. Desta vez, eu entendi tudinho, Adriano! Foi divertido ajudar. Espero que você se divirta também! > > E tb uma coisa... Existe alguma diferenca entre usar $divide[$x] e @divide[$x] ? Pq > eu testei isso e, ao menos no compilador q uso aki, deu o mesmo resultado.... > Bom, vamos com calma. Certifique-se de que você tem uma diretriz use strict; use warnings; No topo de seu programa. Agora vamos ver a explicação: Quando você diz $divide[$x], está se referindo ao $x-ésimo ESCALAR (Exatamente UMA coisa) contido no ARRAY @divide. Quando você diz @divide[$x], está se referindo na verdade a um ARRAY de escalares (MUITAS coisas) que na pratica tem apenas o elemento de índice $x no ARRAY @divide. Para efeito de algorítmo, os dois praticamente tem o mesmo significado. Mas isso pode mudar MUITO se você não controlar MUITO BEM que valores $x pode assumir. Isso pode vir até mesmo a ser perigoso, dependendo do restante do seu programa. As boas práticas de programação Perl dizem que você deve usar '$' como prefixo sempre que se referir a uma variável contendo um escalar, e '@' sempre que se referir a uma variável contendo mais de um escalar (array). Exemplo: o array 'divide' (muitos elementos): @divide; o terceiro elemento do array divide (um elemento só): $divide[2]; o terceiro, quarto e quinto elementos do array divide (muitos elementos): @divide[2,3,4]; Os 5 últimos elementos do array divide (muitos elementos): @divide[-5, $#divide]; Espero que isso deixe claro o que se pode fazer com ARRAYs e ESCALAREs. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Fri Sep 12 14:34:10 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Call for Papers =?ISO-8859-1?Q?+D=FAvida_de_?= =?ISO-8859-1?Q?Biotecnologia_=5BWas=3A_Chamada_de_Artigos_para?= =?ISO-8859-1?Q?_WorkshopAlem=E3o!!_=5BFwd=3A_Call_For_Papers_?= =?ISO-8859-1?Q?for_6th_German_Perl-Workshop=5D?= References: <20030912173848.31192.qmail@web20205.mail.yahoo.com> Message-ID: <3F621FB2.5090508@terra.com.br> Alceu R. de Freitas Jr. wrote: > > Quanto a expressão $divide[$x], o Perl substitui o $x > por um valor, que servirá de índice para o array > @divide. > Na segunda @divide[$x], você está usando uma > referência no saco. Se for usar referências, tome > cuidado para não confundir uma coisa com outra. > Alceu, para ser uma referência, não precisaria estar escrito assim? @$divide[$x]; (note a de-referência expressa em '@$') O que o Adriano está expressando com '@divide[$x]' é na verdade um /slice/ com apenas _um_ elemento (o perl, quando /use warnings/ está habilitado, normalmente reclama disso...). Mas, claro, este é apenas o modo como eu vejo as coisas... []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Fri Sep 12 15:09:45 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?Identifica=E7=E3o_de_quantias_monet?= =?iso-8859-1?q?=E1rias_v=E1lidas=3F?= Message-ID: <3F622809.5020705@terra.com.br> Caros colegas monges Eu preciso reconhecer e validar seqüências monetárias válidas para o padrão brasileiro, isto é, usando '.' como separador (opcional) de milhares e ',' como separador de centavos (obrigatório apenas no caso de haver centavos a expressar). Eu gostaria muito que isto pudesse ser codificado com apenas uma expressão regular, de forma que eu conseguisse testar rapidamente se o número vale. Para isso, eu tentei codificar a expressão assim: qr/^(?:(?:\d{1,3})\.)?(?:\d{3}\.)*(?:\d{1,3})(?:\,\d?\d)?$/ Mas acredito que eu esteja falhando em algum lugar. Eu tenho de conseguir pegar valores deste array; E acho que isso pode servir para inspirar vocês: my @values = ('1' ,'1,0' ,'1,00' ,'10' ,'10,0' ,'10,00' ,'100' ,'100,0' ,'100,00' ,'1000' ,'1000,0' ,'1000,00' ,'1.000' ,'1.000,0' ,'1.000,00' ,'10000' ,'10000,0' ,'10000,00' ,'10.000' ,'10.000,0' ,'10.000,00' ,'13.000.000.000.000' ,'13.000.000.000.000,0' ,'13.000.000.000.000,00' ); Gostaria de ouvir palpites e comentários dos monges sobre isso. Obrigado. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From frighetti em cascavel.pm.org Sat Sep 13 16:30:06 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?N=FAmeros?= Flutuantes Message-ID: <20030913183006.7758de63.frighetti@cascavel.pm.org> Olá pessoal! Estou com o seguinte problema com pontos flutuantes: Quando efetuo a seguinte conta ((((-1/5)*3)*5)+3) o resultado correto seria 0 (zero) mas ele resulta no seguinte: $ perl -e 'printf "%0.55f\n",((((-1/5)*3)*5)+3);' -0.0000000000000004440892098500626161694526672363281250000 $ Alguém saberia como tratar este tipo de problema? Abraços. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From fglock em pucrs.br Sat Sep 13 16:39:27 2003 From: fglock em pucrs.br (fglock@pucrs.br) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Números Flutuantes Message-ID: <200309132136.h8DLatjw094046@rigel.pucrs.br> Fabiano: Veja: man perlfaq4 Espero que ajude. Experimente usar "inteiros com ponto fixo" (basta multiplicar alguns numeros por 10, e depois dividir por 10 de novo): perl -e 'printf "%0.55f\n",((((-10/5)*3)*5)+30)/10;' '0.0000000000000000000000000000000000000000000000000000000 > Olá pessoal! > Estou com o seguinte problema com pontos flutuantes: Quando efetuo a > seguinte conta ((((-1/5)*3)*5)+3) o resultado correto seria 0 (zero) mas > ele resulta no seguinte: > > $ perl -e 'printf "%0.55f\n",((((-1/5)*3)*5)+3);' > -0.0000000000000004440892098500626161694526672363281250000 > $ > > Alguém saberia como tratar este tipo de problema? > > Abraços. > -- > Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > From nferraz em phperl.com Sat Sep 13 18:31:57 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Artigo sobre Biotecnologia Message-ID: <3F63A8ED.1090801@phperl.com> Aqui vai um artigo do autor de "Mastering Perl for Bioinformatics" sobre otimização do uso da memória em Perl: A Chromosome at a Time with Perl http://www.perl.com/pub/a/2003/09/10/bioinformatics.html -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From flavio em marquescorrea.com.br Mon Sep 15 09:34:32 2003 From: flavio em marquescorrea.com.br (Marques & =?iso-8859-1?q?Corr=EAa?= Ltda.) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?N=FAmeros?= Flutuantes In-Reply-To: <20030913183006.7758de63.frighetti@cascavel.pm.org> References: <20030913183006.7758de63.frighetti@cascavel.pm.org> Message-ID: <200309151134.32421.flavio@marquescorrea.com.br> Em Sáb 13 Set 2003 18:30, Fabiano Reese Righetti escreveu: > Olá pessoal! > Estou com o seguinte problema com pontos flutuantes: Quando efetuo a > seguinte conta ((((-1/5)*3)*5)+3) o resultado correto seria 0 (zero) mas > ele resulta no seguinte: > > $ perl -e 'printf "%0.55f\n",((((-1/5)*3)*5)+3);' > -0.0000000000000004440892098500626161694526672363281250000 > $ > > Alguém saberia como tratar este tipo de problema? > > Abraços. Fabiano, a causa própriamente dita eu já li, mas não me lembro mais aonde e nem quando exatamente. Este problema eu já enfrentei em C/C++, PASCAL, PHP e outros. Se me recordo bem, posso estar enganado :), quando você divide dois valores tipo "float" o valor é sempre "meio-exato", a solução que tenho adotado é diminuir a precisão. No seu caso, se fosse o meu, faria da seguinte forma: $ perl -e 'printf "%0.15f\n",((((-1/5)*3)*5)+3);'. Como eu trabalho com aplicações financeiras/contábeis e não fins científicos, que pode ser o caso, faria : $ perl -e 'printf "%0.2f\n",((((-1/5)*3)*5)+3);'. From flavio em marquescorrea.com.br Mon Sep 15 09:34:37 2003 From: flavio em marquescorrea.com.br (Marques & =?iso-8859-1?q?Corr=EAa?= Ltda.) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Localizando "css" em arquivos HTML Message-ID: <200309151134.37676.flavio@marquescorrea.com.br> Pessoal da lista, estou com uma dúvida, possuo vários arquivos em HTML e todos são formatados apartir de um único arquivo CSS. Tenho encontrado dificuldades para elaborar um script que localiza-se a seguinte sentença: class="". Depois de localizado seria interessante que o script elabora-se uma listagem contendo o nome do arquivo mais que sentenças ele possui. Acredito que seja um script utilísimo para quem trabalha com HTML "no braço", para uma limpeza no arquivo de CSS, existe algum script/aplicativo que execute esta função? Em GPL é claro! ;) Flávio de Vasconcellos Corrêa. From nferraz em phperl.com Mon Sep 15 10:33:03 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Localizando "css" em arquivos HTML In-Reply-To: <200309151134.37676.flavio@marquescorrea.com.br> References: <200309151134.37676.flavio@marquescorrea.com.br> Message-ID: <3F65DBAF.6050701@phperl.com> > estou com uma dúvida, possuo vários arquivos em HTML e todos são formatados > apartir de um único arquivo CSS. Tenho encontrado dificuldades para elaborar > um script que localiza-se a seguinte sentença: class="". > Depois de localizado seria interessante que o script elabora-se uma listagem > contendo o nome do arquivo mais que sentenças ele possui. #!/usr/bin/perl while (<>) { print "$1\n" if /class="(.+?)"/i } Tradução: para cada linha do arquivo (while (<>), imprima o que casar com o que está entre parênteses na expressão regular /class="(.+?)"/i. > Acredito que seja um script utilísimo para quem trabalha com HTML "no braço", > para uma limpeza no arquivo de CSS, existe algum script/aplicativo que > execute esta função? Em GPL é claro! ;) Dê uma olhada no HTML tidy: http://www.w3.org/People/Raggett/tidy/ -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From lechamps em terra.com.br Mon Sep 15 12:08:35 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf] Re: [Cascavel-pm] Localizando "css" em arquivos HTML References: <200309151134.37676.flavio@marquescorrea.com.br> <3F65DBAF.6050701@phperl.com> Message-ID: <3F65F213.9010802@terra.com.br> Nelson Ferraz wrote: >> estou com uma dúvida, possuo vários arquivos em HTML e todos são >> formatados apartir de um único arquivo CSS. Tenho encontrado >> dificuldades para elaborar um script que localiza-se a seguinte >> sentença: class="". Depois de localizado seria >> interessante que o script elabora-se uma listagem contendo o nome do >> arquivo mais que sentenças ele possui. > > > #!/usr/bin/perl > while (<>) { > print "$1\n" if /class="(.+?)"/i > } Belo script, Nelson. Posso jogar um pouquinho de Perl Golf com ele? Pode ser mais útil ainda assim: perl -ne 'print "$1\n" if/class\s*=\s*"([^\"]+)"/i;' ****************************************************** Pergunta: a classe de caracteres expressa por qr/[\"]/ contém um ('"') ou dois ('"', '\') caracteres? E quantos caracteres tem a classe de caracteres expressa por qr/[^\"]/ ? ****************************************************** De volta à vaca-fria, o programa vai ficar ainda mais rápido assim, embora fique feio (IMHO): perl -ne 'print "$1\n" if /[Cc][Ll][Aa][Ss][Ss]\s*=\s*"([^\"]+)"/;' E pode ficar menos bagunçado se você usar o sort(1) para organizar as coisas: perl -ne 'print "$1\n" if/class="([^\"]+)"/i;' < filename.html | sort -u (lembrem-se: tudo isto é uma única linha de comando!) Parabéns pela solução *simples* para o problema, Nelson! Boa sorte com o HTML, Flávio! []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Mon Sep 15 12:30:06 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf] Re: [Cascavel-pm] Localizando "css" em arquivos HTML In-Reply-To: <3F65F213.9010802@terra.com.br> Message-ID: <20030915173006.39141.qmail@web20203.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > De volta à vaca-fria, o programa vai ficar ainda > mais rápido assim, > embora fique feio (IMHO): > > perl -ne 'print "$1\n" if > /[Cc][Ll][Aa][Ss][Ss]\s*=\s*"([^\"]+)"/;' > > E pode ficar menos bagunçado se você usar o > sort(1) para organizar as > coisas: > > perl -ne 'print "$1\n" if/class="([^\"]+)"/i;' < > filename.html | sort -u Não dá para encaixar um "/o" ainda dentro da expressão regular? ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Mon Sep 15 13:06:43 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf] Re: [Cascavel-pm] Localizando "css" em arquivos HTML References: <20030915173006.39141.qmail@web20203.mail.yahoo.com> Message-ID: <3F65FFB3.30207@terra.com.br> Alceu R. de Freitas Jr. wrote: > --- Luis Campos de Carvalho > escreveu: > >> De volta à vaca-fria, o programa vai ficar ainda >>mais rápido assim, >>embora fique feio (IMHO): >> >> perl -ne 'print "$1\n" if >>/[Cc][Ll][Aa][Ss][Ss]\s*=\s*"([^\"]+)"/;' >> >> E pode ficar menos bagunçado se você usar o >>sort(1) para organizar as >>coisas: >> >> perl -ne 'print "$1\n" if/class="([^\"]+)"/i;' < >>filename.html | sort -u > > > Não dá para encaixar um "/o" ainda dentro da expressão regular? > Caro e caríssimo Alceu: Eu sei que seu perl é muito mais fluente que seu inglês, mas por favor tente ler este artigo: http://www.perlmonks.org/index.pl?node_id=269035 E depois, vai entender que escrever a expressão assim: perl -ne 'print "$1\n" if qr/[Cc][Ll][Aa][Ss][Ss]\s*=\s*"([^\"]+)"/;' É mais interessante do que usar o tal do '/o'... []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Mon Sep 15 13:54:30 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf] Re: [Cascavel-pm] Localizando "css" em arquivos HTML In-Reply-To: <3F65FFB3.30207@terra.com.br> Message-ID: <20030915185430.32190.qmail@web20209.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > Eu sei que seu perl é muito mais fluente que seu > inglês, mas por > favor tente ler este artigo: > > http://www.perlmonks.org/index.pl?node_id=269035 Na verdade, é muito pelo contrário: eu só tenho contato com Perl desde 2001. Meu inglês é bem mais velho... se não fosse, como poderia aprender Perl com o material (in)decente em português? O próprio "Programando em Perl" não é o melhor livro traduzido que já li. > E depois, vai entender que escrever a expressão > assim: > > perl -ne 'print "$1\n" if > qr/[Cc][Ll][Aa][Ss][Ss]\s*=\s*"([^\"]+)"/;' > > É mais interessante do que usar o tal do '/o'... O arquivo é muito extenso (e eu nem tenho como lê-lo completamente agora), mas deu para abstrair duas coisas: 1 - /o não é útil porque não existe variável para ser interpolada (isso eu não sabia); 2 - qr realmente parece mais interessante. Dá até para jogar um "/i" no final do comando, e sumir com os "[Cc]" e primos dentro da expressão. 3 - ss, SS, Ss, sS não seriam "casados" com /s{2}/i ? []´s Alceu ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Tue Sep 16 08:03:33 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf] Re: [Cascavel-pm] Localizando "css" em arquivos HTML References: <20030915185430.32190.qmail@web20209.mail.yahoo.com> Message-ID: <3F670A25.6030107@terra.com.br> Alceu R. de Freitas Jr. wrote: > Na verdade, é muito pelo contrário: eu só tenho > contato com Perl desde 2001. Meu inglês é bem mais > velho... se não fosse, como poderia aprender Perl com > o material (in)decente em português? O próprio > "Programando em Perl" não é o melhor livro traduzido > que já li. Ooops... foi maus. Desculpe, Alceu. Eu sempre achei você melhor de perl do que de inglês... ehehehe =-] > > O arquivo é muito extenso (e eu nem tenho como lê-lo > completamente agora), mas deu para abstrair duas > coisas: Não se preocupe. Eu ainda estou ruminando ele, também. Não adianta nada ler apenas uma vez. > 1 - /o não é útil porque não existe variável para ser > interpolada (isso eu não sabia); =-] Legal, né? > 2 - qr realmente parece mais interessante. Dá até para > jogar um "/i" no final do comando, e sumir com os > "[Cc]" e primos dentro da expressão. Neste caso, você estaria otimizando para legibilidade. Eu estou otimizando para velocidade, evitando o '/i' e enumerando de forma explícita a expressão toda. > 3 - ss, SS, Ss, sS não seriam "casados" com /s{2}/i ? TIMTOWTDI. No seu caso, qr/s{2}/i é fácil de ler e mais difícil de operar. Como resultado, expressões complexas demoram mais para encontrar um match. Se você escrever qr/[Ss][Ss]/, a expressão se torna mais difícil de ler, mas mais simples de operar, e encontra matches mais depressa. Desnecessário dizer que em um caso ridículo como este não faz a menor diferença... =-] Putamplexos para o Grande Alceu, []'z! para os M[ou]ngers. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Tue Sep 16 08:06:30 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] XML parsing Message-ID: <20030916130630.74202.qmail@web20210.mail.yahoo.com> Olá lista, Há alguns dias atrás eu tive que fazer um script para pegar um arquivo XML com algumas centenas de MB e dividi-lo em partes menores, de acordo com os registros. Isso deu um trabalhão. Motivado pela preguiça, eu fui procurar módulos no CPAN para fazer esse trabalho todo, só que a quantidade de módulos para trabalhar com XML é enorme. Além do (meio) óbvio XML::Parser, alguém poderia indicar algum? []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From glasswalk3r em yahoo.com.br Tue Sep 16 09:29:46 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf] Re: [Cascavel-pm] Localizando "css" em arquivos HTML In-Reply-To: <3F670A25.6030107@terra.com.br> Message-ID: <20030916142946.52014.qmail@web20205.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > > 2 - qr realmente parece mais interessante. Dá até > para > > jogar um "/i" no final do comando, e sumir com os > > "[Cc]" e primos dentro da expressão. > > Neste caso, você estaria otimizando para > legibilidade. > Eu estou otimizando para velocidade, evitando o > '/i' e enumerando de > forma explícita a expressão toda. Usar '/i' implica em dar mais carga ao interpretador do Perl? > > 3 - ss, SS, Ss, sS não seriam "casados" com > /s{2}/i ? > > TIMTOWTDI. > No seu caso, qr/s{2}/i é fácil de ler e mais > difícil de operar. Como > resultado, expressões complexas demoram mais para > encontrar um match. > Se você escrever qr/[Ss][Ss]/, a expressão se > torna mais difícil de > ler, mas mais simples de operar, e encontra matches > mais depressa. > Desnecessário dizer que em um caso ridículo como > este não faz a menor > diferença... =-] A mesma pergunta anterior cabe aqui. Como você chegou à essas conclusões? Fez testes com o módulo Benchmark? As documentações onlines sobre expressões regulares não apresentam nada sobre performance em relação ao usar ou operadores. O máximo que encontrei sobre performance é não encavalar expressões usando "|". É mais rápido escrever cada ocorrência separadamente. Por exemplo: s/caixa|caixote/cx/; em: s/caixa/cx/; s/caixote/cx/; O exemplo é meio esdrúxulo, mas é mais ou menor por aí. []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Tue Sep 16 09:47:33 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: Acronismos, Neologismos e Corruptelas... [Was: [Golf] ] References: <20030916142422.34020.qmail@web20208.mail.yahoo.com> Message-ID: <3F672285.5020304@terra.com.br> Alceu R. de Freitas Jr. wrote: > --- Luis Campos de Carvalho > escreveu: > >> Ooops... foi maus. >> Desculpe, Alceu. Eu sempre achei você melhor de >>perl do que de >>inglês... ehehehe =-] > > > Para vc ter uma idéia de como meu "perlish" é > rudimentar. =-) Mas daonde vc tirou essa idéia? É uma das minhas primeiras impressões sobre você. Apenas para comprovar que a primeira impressão é sempre enganadora... > >> TIMTOWTDI. > Ahn? Não, eu prefiro macarrão ao molho bolonhesa. Que > diabos é "TIMTOWTDI"? É klingon? Carinha, tem certeza de que você programa perl? A lista de Phyton fica no www.Phyton.org, tá? T.I.M.T.O.W.T.D.I. (ou apenas 'TIMTOWTDI') é o acronismo oficial da comunidade perl para "There Is More Than One Way To Do It", ou, em bom português, "Tem Mais de Um Jeito de Fazer Isso". É um dos lemas mais antigos e difundidos do perl... O inventor é o Tom Christiansen, autor do "Llama Book" (Learning Perl, da O'Reilly). >> Putamplexos para o Grande Alceu, []'z! para os >>M[ou]ngers. > > > Eu espero que isso seja alguma coisa boa... =-) > Está virando um hábito eu ficar lhe perguntando sobre > palavras de significado obscuro. 'Putamplexos' é neologismo, a arte de criar palavras novas. Este é de autoria do meu irmão publicitário, que gosta da expressão "puta abraço" (um grande abraço). Aí, sofisticou um poquinho, com a erudita "amplexos" (sinônio erudito para 'abraço'), e manteve a gíria popular "puta" (para idicar uma coisa de grandes dimensões). Da fusão, a corruptela erudito-popular "putamplexos", ou, em bom português, "um grande abraço". É divertido responder, pergunte à vontade. > A parte técnica eu deixo para mandar pra lista para > evitar leitores aborrecidos. Oras, esta é uma lista de Perl Mongers. Aqui, classificamos Perl como Off-Toppic (fora do assunto)... =-] vale tudo, e esta segue para a lista, pode ser divertida! PS: aceito protestos, reclamações, xingamentos e manifestações de apoio, desde que mantenham minha mãe fora disso! Putamplexos, Alceu! []'z!4ALL, lista! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From sikora em inova.com.br Tue Sep 16 10:40:09 2003 From: sikora em inova.com.br (Rodolfo Sikora) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: Acronismos, Neologismos e Corruptelas... [Was: [Golf] ] References: <3F672285.5020304@terra.com.br> Message-ID: <20030916153959.22528.qmail@sake-local.inova.com.br> Cara, vocês são estranhos! ;) Já que vocês gostam, vamos lá qual seria a melhor forma de otimizar esta regexp. $snipTmpl =~ s/IWMS\((\S+?)\)\s*(.+?)\s*EndS\(\S+?\)/$hash{$1}=$2/gesi; Ela serve para pegar um arquivo grande deste tipo: IWMS(teste) paradas EndS(teste) IWMS(teste2) paradas2 EndS(teste2) e colocar num hash tipo: $hash{teste2}="paradas2"; Estou curioso para ver a arte ninja que vai resultar esta parada. ps.: Sou um fã de perl e uso ele 90% nas coisas q eu faço, mas estou longe se ser um ninja do apocalipse final que corta cabeças, talvez por isto as coisas que eu faço nem sempre são rápidas e comem bastante memória. Outra pergunta seria o seguinte: Porque eu deveria usar mod_perl e não usar fast_cgi, ou melhor um comparativo entre ambos. Nunca usei modperl, sempre usei mod_fastcgi. putamplexos pro6. >> >>> TIMTOWTDI. >> Ahn? Não, eu prefiro macarrão ao molho >bolonhesa. Que >> diabos é "TIMTOWTDI"? É klingon? > > > Carinha, tem certeza de que você programa >perl? > A lista de Phyton fica no www.Phyton.org, tá? > > > T.I.M.T.O.W.T.D.I. (ou apenas 'TIMTOWTDI') é >o acronismo oficial da >comunidade perl para "There Is More Than One Way >To Do It", ou, em bom >português, "Tem Mais de Um Jeito de Fazer Isso". >É um dos lemas mais >antigos e difundidos do perl... O inventor é o >Tom Christiansen, autor >do "Llama Book" (Learning Perl, da O'Reilly). > >>> Putamplexos para o Grande Alceu, []'z! para >os >>>M[ou]ngers. >> >> >> Eu espero que isso seja alguma coisa boa... >=-) >> Está virando um hábito eu ficar lhe >perguntando sobre >> palavras de significado obscuro. > > 'Putamplexos' é neologismo, a arte de criar >palavras novas. > Este é de autoria do meu irmão publicitário, >que gosta da expressão >"puta abraço" (um grande abraço). Aí, sofisticou >um poquinho, com a >erudita "amplexos" (sinônio erudito para >'abraço'), e manteve a gíria >popular "puta" (para idicar uma coisa de grandes >dimensões). Da fusão, a >corruptela erudito-popular "putamplexos", ou, em >bom português, "um >grande abraço". > Rodolfo Sikora - Desenvolvimento e Operação Departamento de Operações e Tecnologia Inova Tecnologias - http://www.inova.com.br **************************************************** *Velop* - administração, controle e monitoramento da sua comunicação na Internet. http://www.inova.com.br From gmpowers em terra.com.br Tue Sep 16 11:46:11 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: Projeto Perl References: <20030916104941.4166f299.frighetti@cascavel.pm.org> Message-ID: <001b01c37c72$0942e200$c98db0c8@gm> Bom, a UFSC voltou agora dia 15 totalmente da greve. Ainda esta semana ou no começo da outra já devo ter um parecer, mas vai depender de uma máquina nova que estão colocando, que deve ser a que usaremos. Mas quero apresentar a proposta junto ao grupo de código aberto da UFSC, tendo um apoio mais duradouro, não só dependente dos meus projetos, e sim da UFSC. GMP. ----- Original Message ----- From: "Fabiano Reese Righetti" To: "Graciliano Monteiro Passos" Sent: Tuesday, September 16, 2003 10:49 AM Subject: Projeto Perl Olá Graciliano! Busquei uma mensagem do histórico da lista Cascavel-PM com relação a formação do grupo brasileiro de Perl e achei interessante as ideias: http://mail.pm.org/pipermail/cascavel-pm/2003-May/000255.html Alias, que tal começarmos a implementa-las? Gostei mais pessoalmente de fazermos a perl.org.br num estilo perl.com, com publicação de artigos. :) Como está a conversa com relação a hospedagem do domínio na UFSC? Grato. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: VirusScan / Atualizado em 10/09/2003 / Versão: 1.4.0 Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/ From glasswalk3r em yahoo.com.br Tue Sep 16 12:05:45 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: Acronismos, Neologismos e Corruptelas... [Was: [Golf] ] In-Reply-To: <20030916153959.22528.qmail@sake-local.inova.com.br> Message-ID: <20030916170545.53673.qmail@web20204.mail.yahoo.com> Salve Rodolfo, --- Rodolfo Sikora escreveu: > > Cara, vocês são estranhos! ;) Com o tempo você acostuma. :-) > Já que vocês gostam, vamos lá qual seria a melhor > forma de otimizar esta regexp. > > $snipTmpl =~ > s/IWMS\((\S+?)\)\s*(.+?)\s*EndS\(\S+?\)/$hash{$1}=$2/gesi; > > Ela serve para pegar um arquivo grande deste tipo: > IWMS(teste) > paradas > EndS(teste) > > IWMS(teste2) > paradas2 > EndS(teste2) > > e colocar num hash tipo: $hash{teste2}="paradas2"; Você quer trocar IWMSparadasEndS e trocar pelo valor de um hash? Você poderia explicar um pouco melhor? Talvez um trecho do arquivo nos ajude. Só não mande as senhas dos usuários do sistema. :-) De repente dá para usar split usando 'EndSIWMS' como separador de registros. > Estou curioso para ver a arte ninja que vai resultar > esta parada. Eu também. Você escreveu uma linguiça enorme, porque essa mania de expremer tudo? Vá arrancando os pedaços aos poucos, fica mais fácil de entender. perldoc perstyle Dá um toque bacana, se você já não deu uma fuçada nela. > ps.: Sou um fã de perl e uso ele 90% nas coisas q eu > faço, mas estou longe se ser um ninja do apocalipse > final que corta cabeças, talvez por isto as coisas > que eu faço nem sempre são rápidas e comem bastante > memória. 'use Benchmark' ajuda bastante. > Outra pergunta seria o seguinte: Porque eu deveria > usar mod_perl e não usar fast_cgi, ou melhor um > comparativo entre ambos. > Nunca usei modperl, sempre usei mod_fastcgi. Nem eu usei modperl. Mas a vantagem do camaradinha é que os comandos são interpretados pelo Apache (essa explicação deve estar curta e grossa) e não cria (fork) um processo externo chamando o interpretador do Perl. Isso dá uma ajuda tremenda, de um modo geral. O FastCGI é mais indicado para CGI que levam um tempo considerável se preparando para depois começar a atender a requisição do usuário, como ficar lendo dados do banco, ler arquivo de configurações, etc. Você inicia o CGI com o servidor, e a aplicação fica pronta para atender a requisição, sem mais demoras. É mais uma questão de analisar qual a melhor escolha para sua aplicação, então fica difícil comparar ambos. []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From fglock em pucrs.br Tue Sep 16 12:24:28 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Re: Acronismos, Neologismos e Corruptelas... [Was: [Golf] ] References: <3F672285.5020304@terra.com.br> <20030916153959.22528.qmail@sake-local.inova.com.br> Message-ID: <3F67474C.5562@pucrs.br> Rodolfo Sikora wrote: > > Porque eu deveria usar mod_perl e não usar fast_cgi, ou melhor um comparativo entre ambos. O fastcgi funciona independente do servidor web - pode até ser instalado em um computador separado; o fastcgi funciona em "quase" qualquer servidor web. http://www.fastcgi.com/ O modperl é integrado com o servidor web - utiliza o mesmo processo. Por isso, tem mais direitos; o modperl foi desenvolvido para ser usado com o servidor Apache. http://perl.apache.org/ A diferença principal é que o modperl é mais popular e por isso tem mais suporte - quando dá problema, é mais fácil de achar para quem perguntar. - Flavio S. Glock From nferraz em phperl.com Tue Sep 16 13:01:53 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] XML parsing In-Reply-To: <20030916130630.74202.qmail@web20210.mail.yahoo.com> References: <20030916130630.74202.qmail@web20210.mail.yahoo.com> Message-ID: <3F675011.9000106@phperl.com> > Há alguns dias atrás eu tive que fazer um script para > pegar um arquivo XML com algumas centenas de MB e > dividi-lo em partes menores, de acordo com os > registros. Isso deu um trabalhão. > > Motivado pela preguiça, eu fui procurar módulos no > CPAN para fazer esse trabalho todo, só que a > quantidade de módulos para trabalhar com XML é enorme. > Além do (meio) óbvio XML::Parser, alguém poderia > indicar algum? Os módulos XML::* são úteis quando você precisa extrair informações de um arquivo XML, mas se o objetivo for apenas dividi-lo em partes menores, talvez o jeito mais fácil ainda seja usar um simples loop... Você pode mandar um trecho do arquivo e a saída que você espera? -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From lscosta em uninet.com.br Tue Sep 16 13:28:42 2003 From: lscosta em uninet.com.br (Leandro Costa) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Executar comando bash Message-ID: <001301c37c80$5b66d5b0$c801010a@0005p> Ola galera Como faco para executar uma comando bash dentro do perl ex.: wc -l teste.txt E ainda jogar o conteudo para uma variavel ? grato Leandro From lechamps em terra.com.br Tue Sep 16 13:39:10 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Golf, Again!]: Re: [Cascavel-pm] Re: Acronismos, Neologismos e Corruptelas... References: <3F672285.5020304@terra.com.br> <20030916153959.22528.qmail@sake-local.inova.com.br> Message-ID: <3F6758CE.5080206@terra.com.br> Rodolfo Sikora wrote: > Cara, vocês são estranhos! ;) > > Já que vocês gostam, vamos lá qual seria a melhor forma de otimizar esta regexp. > > $snipTmpl =~ s/IWMS\((\S+?)\)\s*(.+?)\s*EndS\(\S+?\)/$hash{$1}=$2/gesi; > Vamos começar torto (calma, que eu explico!): Você deveria reescrever esta expressão assim: while( $snipTmpl =~ qr/IWMS\([^\)]+\)\s+(\S+)\s+EndS\(([^\)]+)\)/g ){ $hash{$1}=$2; } Evite usar as opções '/i', '/e' e '/s', que causam slowdown na /regular/ /expression/ /engine/ do perl. > Ela serve para pegar um arquivo grande deste tipo: > IWMS(teste) > paradas > EndS(teste) > > IWMS(teste2) > paradas2 > EndS(teste2) > > e colocar num hash tipo: $hash{teste2}="paradas2"; Bom, com estas informações, muda tudo de figura. Você está carregando um arquivo enorme em memória apenas para poder bater uma expressão regular contra ele, mas deveria usar assim: __BEGIN_PERL__ #!/usr/bin/perl use strict; use warnings; my( $name, $thing, %hash ); while ( ) { next if /^\s*$/; $name = $1 if /^IWMS\(([^\)]+)\)/; undef $name if /^EndS\($name\)/; $hash{ $name } = $1 if defined $name && /^(\S+)$/; } __END_PERL__ Vantagens? O footprint de memória disso aqui é ridículo - eu carrego apenas uma linha (12-18 bytes, no máximo) de cada vez; Posso ler de pipelines, basta usar '<>' ou '' no loop; não tenho problemas com o tamanho do arquivo, tenho dados de saída instantâneos, se eu quiser (basta dar print ao invés de armazenar em hash); é muito mais rápido de implementar, ler, entender e documentar; até o estagiário consegue dar manutenção (otimizado para velocidade e legibilidade, coisa rara de conseguir ao mesmo tempo!). > Estou curioso para ver a arte ninja que vai resultar esta parada. Ahahah... "arte ninja..." essa é boa... ahahaha... > ps.: Sou um fã de perl e uso ele 90% nas coisas q eu faço, mas estou > longe se ser um ninja do apocalipse final que corta cabeças, talvez > por isto as coisas que eu faço nem sempre são rápidas e comem > bastante memória. =-] nem esquenta. É como falar $sua_lingua_preferida, você aprende e fala cada vez melhor quanto mais usar. Tenho certeza de que você vai ser um grande ninja do apocalipse em breve... > Outra pergunta seria o seguinte: Porque eu deveria usar mod_perl e > não usar fast_cgi, ou melhor um comparativo entre ambos. > Nunca usei modperl, sempre usei mod_fastcgi. Bom, para isso, nada como a resposta do São Glock(1), em outro email para a lista. Eu nem me atrevo a completar nada... Salve, São Glock! =-] Putamplexos! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Notas: 1. "São Glock" é o honroso título do Professor Flávio S. Glock, Perl Monk Saint: http://www.perlmonks.org/index.pl?node_id=173932 From lechamps em terra.com.br Tue Sep 16 13:52:41 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Executar comando bash References: <001301c37c80$5b66d5b0$c801010a@0005p> Message-ID: <3F675BF9.3020305@terra.com.br> Leandro Costa wrote: > Ola galera > > Como faco para executar uma comando bash dentro do perl > ex.: wc -l teste.txt > > E ainda jogar o conteudo para uma variavel ? > Oi, Leandro! Para fazer o que você quer, basta usar '`' (backticks): $var = `/usr/bin/wc -l teste.txt`; Leia mais sobre isso em perldoc -f system perldoc -f exec perldoc perlop #(procure pela string "`STRING`") -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From spooker em spooker.com.br Tue Sep 16 13:58:27 2003 From: spooker em spooker.com.br (Sp0oKeR Labs) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Executar comando bash References: <001301c37c80$5b66d5b0$c801010a@0005p> <3F675BF9.3020305@terra.com.br> Message-ID: <00e601c37c84$83d7a160$f900a8c0@spooker> Eu usaria: open(TESTE,"-|","wc -l teste.txt"); $teste=; close TESTE; []z!Sp0oKeR! ===================== Rodrigo Ribeiro Montoro Analista Linux / Segurança http://www.spooker.com.br spooker@spooker.com.br ===================== ----- Original Message ----- From: "Luis Campos de Carvalho" To: "Cascavel Perl Mongers" Sent: Tuesday, September 16, 2003 3:52 PM Subject: Re: [Cascavel-pm] Executar comando bash Leandro Costa wrote: > Ola galera > > Como faco para executar uma comando bash dentro do perl > ex.: wc -l teste.txt > > E ainda jogar o conteudo para uma variavel ? > Oi, Leandro! Para fazer o que você quer, basta usar '`' (backticks): $var = `/usr/bin/wc -l teste.txt`; Leia mais sobre isso em perldoc -f system perldoc -f exec perldoc perlop #(procure pela string "`STRING`") -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= _______________________________________________ Cascavel-pm mailing list Cascavel-pm@mail.pm.org http://cascavel.pm.org/mailman/listinfo/cascavel-pm --- Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.518 / Virus Database: 316 - Release Date: 11/9/2003 From sikora em inova.com.br Tue Sep 16 14:03:35 2003 From: sikora em inova.com.br (Rodolfo Sikora) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Executar comando bash References: <001301c37c80$5b66d5b0$c801010a@0005p> Message-ID: <20030916190318.19167.qmail@sake-local.inova.com.br> Cara eu costumo fazer o seguinte: my $a = `comando feliz`; mas cuida que nem tudo vai para o stdout.. tem coisas que sai para os outros lados, tipo stderr e se não me engano não vai para sua variável. Interessante se existirem outras formas de fazer isto, eu sei que tem open2 e open3 se nao me engano, mas não gosto muito dele. []s; ================= >De:"Leandro Costa" >Para: >Assunto:[Cascavel-pm] Executar comando bash > >Ola galera > >Como faco para executar uma comando bash dentro >do perl >ex.: wc -l teste.txt > > E ainda jogar o conteudo para uma variavel ? > >grato >Leandro >_______________________________________________ >Cascavel-pm mailing list >Cascavel-pm@mail.pm.org >http://cascavel.pm.org/mailman/listinfo/cascavel >-pm Rodolfo Sikora - Desenvolvimento e Operação Departamento de Operações e Tecnologia Inova Tecnologias - http://www.inova.com.br **************************************************** *Velop* - administração, controle e monitoramento da sua comunicação na Internet. http://www.inova.com.br From sikora em inova.com.br Tue Sep 16 14:10:14 2003 From: sikora em inova.com.br (Rodolfo Sikora) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Acronismos, Neologismos e Corruptelas... [Was: [Golf] ] References: <20030916170545.53673.qmail@web20204.mail.yahoo.com> Message-ID: <20030916191004.25763.qmail@sake-local.inova.com.br> Tudo em paz?! >Salve Rodolfo, > > --- Rodolfo Sikora >escreveu: > >> Cara, vocês são estranhos! ;) > >Com o tempo você acostuma. :-) > >> Já que vocês gostam, vamos lá qual seria a >melhor >> forma de otimizar esta regexp. >> >> $snipTmpl =~ >> >s/IWMS\((\S+?)\)\s*(.+?)\s*EndS\(\S+?\)/$hash{$1 >}=$2/gesi; >> >> Ela serve para pegar um arquivo grande deste >tipo: >> IWMS(teste) >> paradas >> EndS(teste) >> >> IWMS(teste2) >> paradas2 >> EndS(teste2) >> >> e colocar num hash tipo: >$hash{teste2}="paradas2"; > >Você quer trocar IWMSparadasEndS e trocar pelo >valor >de um hash? Você poderia explicar um pouco >melhor? Na verdade quero construir um hash onde a chave é o conteúdo dos parênteses e o valor o que estiver entre as tags. Eu já tenho algo funcional, muito feliz e tal.. mas não sei até que ponto eficiente, e fiquei curioso por soluções alternativas. Assim que tiver uma folga mando um exemplo legal. Vou fazer um benchmark com a idéia do ninja Luis tb. >Talvez um trecho do arquivo nos ajude. Só não >mande as >senhas dos usuários do sistema. :-) >De repente dá para usar split usando 'EndSIWMS' >como >separador de registros. > >> Estou curioso para ver a arte ninja que vai >resultar >> esta parada. > >Eu também. Você escreveu uma linguiça enorme, >porque >essa mania de expremer tudo? Vá arrancando os >pedaços >aos poucos, fica mais fácil de entender. > >perldoc perstyle Na verdade este código remonta dos seres da grande era, quando os dinossauros ainda estavam na prancheta, mas valeu a dica do perlstyle > >Dá um toque bacana, se você já não deu uma >fuçada >nela. > >> ps.: Sou um fã de perl e uso ele 90% nas >coisas q eu >> faço, mas estou longe se ser um ninja do >apocalipse >> final que corta cabeças, talvez por isto as >coisas >> que eu faço nem sempre são rápidas e comem >bastante >> memória. > >'use Benchmark' ajuda bastante. > Yep, vai ser meu amigo inseparável. >> Outra pergunta seria o seguinte: Porque eu >deveria >> usar mod_perl e não usar fast_cgi, ou melhor >um >> comparativo entre ambos. >> Nunca usei modperl, sempre usei mod_fastcgi. > >Nem eu usei modperl. Mas a vantagem do >camaradinha é >que os comandos são interpretados pelo Apache >(essa >explicação deve estar curta e grossa) e não cria >(fork) um processo externo chamando o >interpretador >do Perl. Isso dá uma ajuda tremenda, de um modo >geral. > >O FastCGI é mais indicado para CGI que levam um >tempo >considerável se preparando para depois começar a >atender a requisição do usuário, como ficar >lendo >dados do banco, ler arquivo de configurações, >etc. >Você inicia o CGI com o servidor, e a aplicação >fica >pronta para atender a requisição, sem mais >demoras. > >É mais uma questão de analisar qual a melhor >escolha >para sua aplicação, então fica difícil comparar >ambos. > Eu vou procurar qualquer hora um hello world em mod_perl.. para ser sincero eu fiquei um pouco traumatizado quando fui mexer em sistemas já prontos em mod_perl.. achei uma zona... mas estou muito curioso. Estou com um problema sério de memory leak, provavelmente adquirido por usar Text::Template... preciso resolver... e logo logo vou iniciar um projeto de caça as bruxar para tornar o sistema mais leve e com maior performance. []s Rodolfo Sikora - Desenvolvimento e Operação Departamento de Operações e Tecnologia Inova Tecnologias - http://www.inova.com.br **************************************************** *Velop* - administração, controle e monitoramento da sua comunicação na Internet. http://www.inova.com.br From glasswalk3r em yahoo.com.br Tue Sep 16 14:20:04 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] Executar comando bash In-Reply-To: <20030916190318.19167.qmail@sake-local.inova.com.br> Message-ID: <20030916192004.69552.qmail@web20209.mail.yahoo.com> Só para arrematar a resposta de todos (que são todas válidas), usar system, duas crases, open, open2, open3, tem suas implicações de segurança. Se você estiver preocupado com isso, recomendo ler: perldoc perlsec Para verificar as possibilidades de rodar comandos shell sem chamar o shell (interessante isso, não?). Eu costumo usar system, passando os parâmetros separados por vírgulas, assim: system("grep","i","$arquivo"); do que assim: system("grep -i $arquivo"); Em relação à obter a saída do programa, você vai ter que usar open para fazer uma chamada segura, e aí é mais complicado de explicar (eu nem lembro direito): open(FOO,"-|") or exec 'echo'; Algo como cria um processo pai, que pega a saída padrão de um processo filho gerado pelo exec, que ao contrário do `comando` e system não chama o shell. A mágica aqui é um pouco mais sombria, e eu não compreendo direito. Alguém se arrisca a explicar? []´s Alceu --- Rodolfo Sikora escreveu: > Cara eu costumo fazer o seguinte: > > my $a = `comando feliz`; > > mas cuida que nem tudo vai para o stdout.. tem > coisas que sai para os outros lados, tipo stderr e > se não me engano não vai para sua variável. > > Interessante se existirem outras formas de fazer > isto, eu sei que tem open2 e open3 se nao me engano, > mas não gosto muito dele. > > []s; > > ================= > >De:"Leandro Costa" > >Para: > >Assunto:[Cascavel-pm] Executar comando bash > > > >Ola galera > > > >Como faco para executar uma comando bash dentro > >do perl > >ex.: wc -l teste.txt > > > > E ainda jogar o conteudo para uma variavel ? > > > >grato > >Leandro _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From glasswalk3r em yahoo.com.br Tue Sep 16 14:27:59 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:46 2004 Subject: [Cascavel-pm] XML parsing In-Reply-To: <3F675011.9000106@phperl.com> Message-ID: <20030916192759.85643.qmail@web20204.mail.yahoo.com> --- Nelson Ferraz escreveu: > > > > Os módulos XML::* são úteis quando você precisa > extrair informações de > um arquivo XML, mas se o objetivo for apenas > dividi-lo em partes > menores, talvez o jeito mais fácil ainda seja usar > um simples loop... Talvez sim, talvez não. Para o caso específico que citei, talvez um script "normal" resolva melhor, o fato é que esses arquivos XML vão começar a fazer parte da minha rotina diária... daí meu pedido de indicações. > Você pode mandar um trecho do arquivo e a saída que > você espera? Eu coloquei apenas a parte que interessa do script, as inicializações eu deixei de fora: open (FILE,"<$path") || die "Cannot read $file: $!\n"; while () { next if $_ eq ''; # get the footer if (/<\?xml version="1.0" encoding="ISO-8859-1"\?>/io) { chomp; s/\r$//o; $xml_header = $_; next; } if (///o; $end_list =~ s/\s+//g; $end_list = " "; next; } # count for account; when reaches limit, put data into another file if (/^\s{4}/io) { $account_counter++; $start_copy = 1; } if ($start_copy == 1) { chomp; s/\r$//o; next if (/<\/ListOfAccount>/io); next if (/<\/SiebelMessage>/io); push (@contents,$_) unless (/<\/Account>/io); } if (/<\/Account>/) { $| = 1; chomp; s/\r$//o; push (@contents,$_); # reaches limits, create a file and put data into it if ($account_counter == $limit) { # file must have at least XML initial tag die "This file is not in XML format\n" unless defined($xml_header); $file_counter++; print "Creating $file-$file_counter.xml...\t"; create_part(); print "---> OK.\n"; $account_counter = 0; } } next; } close(FILE); # let´s create the last final, with the rest of the content $file_counter++; print "Creating last file $file-$file_counter.xml... "; create_part(); print "---> OK.\n"; A função create_part pega uma coleção de registros (não adianta eu trabalhar por linhas nesse caso) e cria um arquivo separado. O programa faz isso até o arquivo original tiver sido lido completamente. Le Champs, vc vai reparar meus "/io" espalhados por aí. E, para não perder o embalo, lanço a pergunta: até que ponto vale a pena matar a legibilidade do programa em não usar esses operadores? []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From glasswalk3r em yahoo.com.br Tue Sep 16 14:32:25 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Acronismos, Neologismos e Corruptelas... [Was: [Golf] ] In-Reply-To: <20030916191004.25763.qmail@sake-local.inova.com.br> Message-ID: <20030916193225.74914.qmail@web20209.mail.yahoo.com> --- Rodolfo Sikora escreveu: > > > Eu vou procurar qualquer hora um hello world em > mod_perl.. para ser sincero eu fiquei um pouco > traumatizado quando fui mexer em sistemas já prontos > em mod_perl.. achei uma zona... mas estou muito > curioso. O pessoal gosta bastante. Você deveria tentar de qualquer forma: nem UNIX nem Perl são lá muito amigáveis na primeira olhada, mas depois que você se apega... > Estou com um problema sério de memory leak, > provavelmente adquirido por usar Text::Template... > preciso resolver... e logo logo vou iniciar um > projeto de caça as bruxar para tornar o sistema mais > leve e com maior performance. Considere usar HTML::Template, ou quem sabe ainda Mason (o livro de O´Reilly é de livre acesso sobre o tema). O último tem feito bastante sucesso para sites grandes. []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From fglock em pucrs.br Tue Sep 16 14:30:51 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Executar comando bash References: <001301c37c80$5b66d5b0$c801010a@0005p> <20030916190318.19167.qmail@sake-local.inova.com.br> Message-ID: <3F6764EB.2475@pucrs.br> Rodolfo Sikora wrote: > > Cara eu costumo fazer o seguinte: > > my $a = `comando feliz`; > > mas cuida que nem tudo vai para o stdout.. tem coisas que sai para os outros lados, tipo stderr e se não me engano não vai para sua variável. > > Interessante se existirem outras formas de fazer isto, eu sei que tem open2 e open3 se nao me engano, mas não gosto muito dele. # para pegar o STDERR junto, misturado com o STDOUT: my $a = `comando feliz 2>&1`; Em algumas versões do Windows isso não funciona. Mas nestas versões o open3 também não funciona :) - Flavio S. Glock From flavio.correa em pop.com.br Tue Sep 16 16:57:34 2003 From: flavio.correa em pop.com.br (=?iso-8859-1?q?Fl=E1vio=20de=20Vasconcellos=20Corr=EAa?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?N=FAmeros?= Flutuantes In-Reply-To: <200309151134.32421.flavio@marquescorrea.com.br> References: <20030913183006.7758de63.frighetti@cascavel.pm.org> <200309151134.32421.flavio@marquescorrea.com.br> Message-ID: <200309161857.35072.flavio.correa@pop.com.br> Em Seg 15 Set 2003 11:34, Marques & Corrêa Ltda. escreveu: > Em Sáb 13 Set 2003 18:30, Fabiano Reese Righetti escreveu: > > Olá pessoal! > > Estou com o seguinte problema com pontos flutuantes: Quando efetuo a > > seguinte conta ((((-1/5)*3)*5)+3) o resultado correto seria 0 (zero) mas > > ele resulta no seguinte: > > > > $ perl -e 'printf "%0.55f\n",((((-1/5)*3)*5)+3);' > > -0.0000000000000004440892098500626161694526672363281250000 > > $ > > > > Alguém saberia como tratar este tipo de problema? > > > > Abraços. > > Fabiano, > a causa própriamente dita eu já li, mas não me lembro mais aonde e nem > quando exatamente. Este problema eu já enfrentei em C/C++, PASCAL, PHP e > outros. Se me recordo bem, posso estar enganado :), quando você divide dois > valores tipo "float" o valor é sempre "meio-exato", a solução que tenho > adotado é diminuir a precisão. No seu caso, se fosse o meu, faria da > seguinte forma: > > $ perl -e 'printf "%0.15f\n",((((-1/5)*3)*5)+3);'. > > Como eu trabalho com aplicações financeiras/contábeis e não fins > científicos, que pode ser o caso, faria : > > $ perl -e 'printf "%0.2f\n",((((-1/5)*3)*5)+3);'. > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm Fabiano, vou transcrever uma explicação que encontrei no livro "Programação Orientada a Objetos usando Delphi 3" de Faiçal Farhat de Carvalho, ed. Érica 1a. edição, 1998, pag. 119 " Números reais. Os computadores lidam com muita facilidade com números inteiros. A representação binária de um número inteiro é absolutamente exata. Entretanto, a coisa muda um pouco de figura quando entram em cena os números reais. É fácil intuir a complexidade que surge. Quando trabalhamos com números reais, muitas vezes estamos lidando com aproximações. Por exemplo, a expressão 1/3 pode ser representada como 0,3333 - quatro casas depois da vírgula. Essa aproximação pode ser conveniente para a maioria dos softwares financeiros. Porém para um controlador de rota de naves espaciais tripuladas, esse nível de precisão pode ser inadequado - especialmente para o astronauta, que certamente ficaria mais satisfeito em saber que no computador da sua nave a fração 1/3 é igual a 0,333333333333333333333333333333. Isso nos mostra que a representação de números reais pode apresentar muitas variações. Na verdade, quando o assunto é número real, surgem alguns personagens que simplismente não aparecem quando a novela é a dos números inteiros: precisão, número de dígitos significativos, underflow, mantissa, base, expoente, são alguns exemplos. Esse é um assunto complexo. Não vamos tratar aqui de cada um desses termos. É importante, porém, termos uma boa noção de que existe com freqüência uma certa margem de erro quando lidamos com números reais. Muitas vezes, esses erros são insignificantes. Em alguns casos, porém, erros acumulados de arredondamentos podem prejudicar significamente o resultado de um cálculo. É preciso, portanto, ficar atento a essas peculiaridades dos números reais." Então Fabiano quando você calcula a expressão (-1/5), pronto você já tem o seu número real e a sua exatidão já era. Pra zerar a tua conta só com: perl -e 'printf "%0.55f\n", ((-3*5)/5)+3;', se você acompanhar o cálculo só existem números inteiros. Não me lembro se no perl tem typecast, deve ter ;), tome cuidado com os arredontamentos consecutivos nos cálculos, você pode ser o inferno de um setor estatístico/financeiro. Flávio de Vasconcellos Corrêa. From vivan em dim.fm.usp.br Tue Sep 16 19:39:56 2003 From: vivan em dim.fm.usp.br (Adriano Vivan Borro) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Dúvida de Biotecnologia References: <3F607E6E.6060105@terra.com.br> <3F60E2E8.A7469488@dim.fm.usp.br> <3F60EAD3.9090708@terra.com.br> <3F621BF2.42CD8761@dim.fm.usp.br> <3F621D95.8000002@terra.com.br> Message-ID: <3F67AD5C.A6D79D96@dim.fm.usp.br> Legal, Luis. Vou estudar e inserir essas rotinas para teste. Agora, no final do email, soh pra ver c eu entendi mesmo... Vc diz q, sempre q utilizo @, me refiro a um array. E $ a um escalar. Isto quer dizer q, c eu usar @divide[$x] vou perder em muito em eficiencia, jah que minha rotina rodarah diversas vezes, utilizando-se sempre de arrays ao inves de escalares? Luis Campos de Carvalho wrote: > Adriano Vivan Borro wrote: > > Legal. Vou procurar o Sr. Nicolas com certeza. Tks. > > Bom congresso na Alemanha para você! > Mande lembranças ao Nick por mim! > > > Qto a minha duvida, eh o seguinte. A frase q estou verificando eh na verdade um > > gene. E como todos sabem, um gene eh uma frase em um alfabeto de 4 caracteres (nao > > deem essa definicao a um biologo ou biomedico, cnao eles podem ateh brigar. :-D ). > > Ae, o q acontece... Eu nunca sei qual eh o tamanho dessa frase. E preciso cortar ( > > ou como eles tratam... "clivar" ) o gene em pontos especificos. De todos estes > > pedacos de gene, tenho q retirar o ultimo, o penultimo, e assim por diante, ateh > > achar determinada sequencia de caracteres. > > Uau!!! Agora isso parece um problema interessante!! =-] > Obrigado por perder seu tempo explicando essas coisas! > > > Tenho, entao, que quero cortar minha frase em toda sequencia TACA por exemplo. E > > quero achar a seguencia CAGA. > > > > Vai, entao um "exemplo de gene": > > > > AGATAATACAATATACAGGCAGACGCATACAGGGATACAGACCTACAATTCGTACACCGCAGATACAGACCAGC > > > > Entao, executando um split /TACA/,$seq , supondo $seq a variavel em q cologuei meu > > "gene", temos: > > > > AGATAA ATA GGCAGACGCA GGGA GACC > > ATTCG CCGCAGA GACCAGC > > Eu particularmente acho o split() fraco e caro. > Provavelmente você poderia tentar uma expressão regular com múltiplos > matches, e um loop while, assim: > > my @genes; > my $gene = q.AGATAATACAATATACAGGCA. . > q.GACGCATACAGGGATACAGAC. . > q.CTACAATTCGTACACCGCAGA. . > q.TACAGACCAGC. > > # "Enfileira" os genes encontrados em ordem inversa... > unshift @genes, $1 while( $gene =~ qr/([ACGT]+?)TACA/g ); > > # Seleciona os que interessam, separa o primeiro. > my $choice = (grep qr/CAGA/, @genes)[0]; > > __END__ > > Poderia ser feito assim, também: > > my $gene = q.AGATAATACAATATACAGGCA. . > q.GACGCATACAGGGATACAGAC. . > q.CTACAATTCGTACACCGCAGA. . > q.TACAGACCAGC. > > my $choice = ( grep qr/CAGA/, reverse split( qr/TACA/, $genes ) )[0]; > > __END__ > > E, finalmente, para resolver seu problema para sempre, a gente pode > criar uma funçãozinha: > > sub clivar{ > my( $Splitter, $LookingFor, $Sequence ) = ( shift, shift, shift ); > return > (grep qr/$LookingFor/o, reverse split(qr/$Splitter/o, $genes))[0]; > } > > > Lembrando q a cada execucao, tenho um gene diferente a ser analizado, que tem o > > tamanho diferente e terao diferentes numeros de clivagem, ou seja, nao sei nunca o > > tamanho e nem o numero de elementos do meu array. > > Ok, sem problemas. Tenho certeza de que a funçãozinha resolve o seu > "abacaxi"... =-] > > > A sequencia procurada estah, entao, em $seq[-2] e em $seq[-6], pois estou contando > > do final para o inicio. Mas a que quero eh a ultima ocorrencia, entao $seq[-2]. A > > saida vai ser entao, o pedaco de gene q tem a sequencia procurada, ou seja, CCGCAGA > > . Com isso, finalizo minha rotina, e serah feita a leitura de outro gene. > > Legal!! =-] Eu gostei deste problema! > Tem mais assim para resolver? > A gente poderia começar um projetinho open-source... criar > bibliotecas de biotecnologia Brasileiras, para o pessoal usar em > pesquisa... > > Se bem que existe muita coisa pronta no CPAN... > > > Espero ter conseguido, desta vez, explicar meu problema. > > Desta vez, eu entendi tudinho, Adriano! > Foi divertido ajudar. > Espero que você se divirta também! > > > > > E tb uma coisa... Existe alguma diferenca entre usar $divide[$x] e @divide[$x] ? Pq > > eu testei isso e, ao menos no compilador q uso aki, deu o mesmo resultado.... > > > > Bom, vamos com calma. > Certifique-se de que você tem uma diretriz > > use strict; > use warnings; > > No topo de seu programa. > > Agora vamos ver a explicação: > > Quando você diz $divide[$x], está se referindo ao $x-ésimo ESCALAR > (Exatamente UMA coisa) contido no ARRAY @divide. > > Quando você diz @divide[$x], está se referindo na verdade a um ARRAY > de escalares (MUITAS coisas) que na pratica tem apenas o elemento de > índice $x no ARRAY @divide. > > Para efeito de algorítmo, os dois praticamente tem o mesmo > significado. Mas isso pode mudar MUITO se você não controlar MUITO BEM > que valores $x pode assumir. Isso pode vir até mesmo a ser perigoso, > dependendo do restante do seu programa. > > As boas práticas de programação Perl dizem que você deve usar '$' > como prefixo sempre que se referir a uma variável contendo um escalar, e > '@' sempre que se referir a uma variável contendo mais de um escalar > (array). > > Exemplo: > > o array 'divide' (muitos elementos): > > @divide; > > o terceiro elemento do array divide (um elemento só): > $divide[2]; > > o terceiro, quarto e quinto elementos do array divide (muitos elementos): > > @divide[2,3,4]; > > Os 5 últimos elementos do array divide (muitos elementos): > > @divide[-5, $#divide]; > > Espero que isso deixe claro o que se pode fazer com ARRAYs e ESCALAREs. > > []'z! > -- > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > Luis Campos de Carvalho is Computer Scientist, > PerlMonk [SiteDocClan], Cascavel-pm Moderator, > Unix Sys Admin && Certified Oracle DBA > http://br.geocities.com/monsieur_champs/ > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > > -------------------------- > Esta mensagem foi verificada > pelo sistema de antivírus DIM e > acredita-se estar livre de Virus. > Virus data file v4292 created Sep 10 2003 From ctu_warrior em yahoo.com.br Tue Sep 16 21:47:38 2003 From: ctu_warrior em yahoo.com.br (=?iso-8859-1?q?Thiago=20Corr=EAa=20C=E9sar?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Executar comando bash Message-ID: <20030917024738.31180.qmail@web41102.mail.yahoo.com> Leandro Costa wrote: > Ola galera > > Como faco para executar uma comando bash dentro do perl > ex.: wc -l teste.txt > > E ainda jogar o conteudo para uma variavel ? > bem uma boa chamada para sistemas unix eh my $var = `mycommand 2> /dev/stdout`; desta forma o retorno do comando passara para a variavel mesmo se retornar um erro (bem eu nao sei te explicar o pq desse comando direito.. mas acredito que o 2 eh sobre o codigo de saida, e extou enviando explicitamente o retorno para o stdout). Mas assim acredito que tambem resolva o problema do Rodolfo. Abracos ===== Thiago Correa César Anakin Gargamel Skywalker CTU_Warrior ICQ #87186157 Linux User #242611 _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From nferraz em phperl.com Tue Sep 16 23:03:51 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] XML parsing In-Reply-To: <20030916192759.85643.qmail@web20204.mail.yahoo.com> References: <20030916192759.85643.qmail@web20204.mail.yahoo.com> Message-ID: <3F67DD27.2040304@phperl.com> >>Os módulos XML::* são úteis quando você precisa >>extrair informações de >>um arquivo XML, mas se o objetivo for apenas >>dividi-lo em partes >>menores, talvez o jeito mais fácil ainda seja usar >>um simples loop... > > Talvez sim, talvez não. Para o caso específico que > citei, talvez um script "normal" resolva melhor, o > fato é que esses arquivos XML vão começar a fazer > parte da minha rotina diária... daí meu pedido de > indicações. Eu já usei o XML::XPath e achei bem interessante, pois permite endereçar qualquer parte do arquivo XML com uma sintaxe relativamente simples. >>Você pode mandar um trecho do arquivo e a saída que >>você espera? > > Eu coloquei apenas a parte que interessa do script, as > inicializações eu deixei de fora: Na verdade eu queria ver um trecho do arquivo XML. :) > Le Champs, vc vai reparar meus "/io" espalhados por > aí. E, para não perder o embalo, lanço a pergunta: até > que ponto vale a pena matar a legibilidade do programa > em não usar esses operadores? Lembre-se da máxima do Donald Knuth: "Premature optimization is the root of all evil". Na maioria das vezes é melhor optar pela solução mais legível, como /abc/i, mesmo que esta seja mais lenta do que /[Aa][Bb][Cc]/. Na dúvida, use Benchmark. -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From lechamps em terra.com.br Wed Sep 17 09:11:56 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?ISO-8859-1?Q?N=FAmeros_Flutuantes?= References: <20030913183006.7758de63.frighetti@cascavel.pm.org> <200309151134.32421.flavio@marquescorrea.com.br> <200309161857.35072.flavio.correa@pop.com.br> Message-ID: <3F686BAC.6060901@terra.com.br> Flávio de Vasconcellos Corrêa wrote: > > Então Fabiano quando você calcula a expressão (-1/5), pronto você já tem o seu > número real e a sua exatidão já era. Pra zerar a tua conta só com: > Eu discordo. Perl responde muito bem à fração 1/5: perl -le 'print 1/5;' 0.2 > perl -e 'printf "%0.55f\n", ((-3*5)/5)+3;', se você acompanhar o cálculo só > existem números inteiros. Novamente, eu discordo. Todas as passagens desta conta, exceto a primeira, são números fracionários. Não são utilizados números reais, e o meu perl (sobre linux) responde '0' para esta conta, como era de se esperar. > Não me lembro se no perl tem typecast, deve ter ;), tome cuidado com os > arredontamentos consecutivos nos cálculos, você pode ser o inferno de um > setor estatístico/financeiro. A pesar de não existir typecast, no sentido estrito da palavra (não confundam com de-referência de referências de alto nível!), perl tem muitos módulos interessante para lidar com matemática. Dê uma espiada aqui: http://search.cpan.org/search?query=math&mode=all Ah! Parabéns pela transcrição sobre ponto-flutuante e arredondamento, foi ótima. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Wed Sep 17 09:18:33 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?ISO-8859-1?Q?D=FAvida_de_Biotecnologia?= References: <3F607E6E.6060105@terra.com.br> <3F60E2E8.A7469488@dim.fm.usp.br> <3F60EAD3.9090708@terra.com.br> <3F621BF2.42CD8761@dim.fm.usp.br> <3F621D95.8000002@terra.com.br> <3F67AD5C.A6D79D96@dim.fm.usp.br> Message-ID: <3F686D39.6010609@terra.com.br> > Luis Campos de Carvalho wrote: >> >> Agora vamos ver a explicação: >> >> Quando você diz $divide[$x], está se referindo ao $x-ésimo ESCALAR >>(Exatamente UMA coisa) contido no ARRAY @divide. >> >> Quando você diz @divide[$x], está se referindo na verdade a um ARRAY >>de escalares (MUITAS coisas) que na pratica tem apenas o elemento de >>índice $x no ARRAY @divide. >> >> Para efeito de algorítmo, os dois praticamente tem o mesmo >>significado. Mas isso pode mudar MUITO se você não controlar MUITO BEM >>que valores $x pode assumir. Isso pode vir até mesmo a ser perigoso, >>dependendo do restante do seu programa. >> >> As boas práticas de programação Perl dizem que você deve usar '$' >>como prefixo sempre que se referir a uma variável contendo um escalar, e >>'@' sempre que se referir a uma variável contendo mais de um escalar >>(array). >> >> Exemplo: >> >> o array 'divide' (muitos elementos): >> >> @divide; >> >> o terceiro elemento do array divide (um elemento só): >> $divide[2]; >> >> o terceiro, quarto e quinto elementos do array divide (muitos elementos): >> >> @divide[2,3,4]; >> >> Os 5 últimos elementos do array divide (muitos elementos): >> >> @divide[-5, $#divide]; >> >> Espero que isso deixe claro o que se pode fazer com ARRAYs e ESCALAREs. Adriano Vivan Borro wrote: > Legal, Luis. Vou estudar e inserir essas rotinas para teste. Boa sorte. > Agora, no final do email, soh pra ver c eu entendi mesmo... > Vc diz q, sempre q utilizo @, me refiro a um array. E $ a > um escalar. Isto quer dizer q, c eu usar @divide[$x] vou > perder em muito em eficiencia, jah que minha rotina > rodarah diversas vezes, utilizando-se sempre de arrays > ao inves de escalares? Quase, Adriano. Você está chegando perto. =-] Está correta a sua noção sobre usar '$' quando você se referir a um escalar, e '@' quando você se referir a um array. Mas está incorreto pensar que o Perl vai "criar" loops no seu programa. O que acontece realmente quando você escreve @divide[$x] é que o compilador gasta muito mais memória, se preparando para a chegada de uma "lista" (/slice/), retirada do array @divide, e você indica apenas UM valor (o que caberia perfeitamente em um escalar). Desta forma, o Perl aloca muito mais memória do que o necessário, e o /footprint/ de memória do seu programa cresce muito. Em outras palavras: diga sempre $divide[$x], que o Perl gasta menos memória para fazer a mesma coisa que você conseguiria com @divide[$x]. À sua disposição para mais explicações, []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Wed Sep 17 10:14:19 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] XML parsing In-Reply-To: <3F67DD27.2040304@phperl.com> Message-ID: <20030917151419.98545.qmail@web20207.mail.yahoo.com> --- Nelson Ferraz escreveu: > > Na verdade eu queria ver um trecho do arquivo XML. > :) Aqui vai: eu cortei o tanto que pude. Desculpem-me se ficou grande: 0124968 0000 EMMANUELLE K SILVA NASCIMENTO EMMANUELLE K SILVA NASCIMENTO BRL Normal 2 Vendas IC-S12-Outros 600 Y Y Y Y Y Y Y Y N 08093841 600 Inativo 600 IC-Specialist 60000195 IC-Specialist IC-S12-Outros N N N N 0124968 0000 600 0124969 0000 JOSE BATISTA NETO JOSE BATISTA NETO BRL Normal 2 Vendas IC-S12-Outros 600 Y Y Y Y Y Y Y Y N 600 600 IC-Specialist 60000195 IC-Specialist IC-S12-Outros N N N 0124969 0000 600 > Lembre-se da máxima do Donald Knuth: "Premature > optimization is the root > of all evil". Quem seria Donald Knuth? Não conheço o autor da frase... []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Wed Sep 17 12:03:25 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] [Who is]: Donald E. Knuth References: <20030917151419.98545.qmail@web20207.mail.yahoo.com> Message-ID: <3F6893DD.9070506@terra.com.br> Alceu R. de Freitas Jr. wrote: >>Lembre-se da máxima do Donald Knuth: "Premature >>optimization is the root >>of all evil". > > > Quem seria Donald Knuth? Não conheço o autor da > frase... > Alceu! Que feio!!! :-) Donald E. Knuth é o "papa" da moderna programação de computadores. Tudo o que existe de teoria sobre a programação de computadores é fruto das pesquisas dele, e devemos a ele a maior biblioteca de algorítmos e técnicas de programação existentes. Ele é o autor da mitológica série de 9 livros (dos quais apenas 7 estão publicados) entitulados "The Art of Computer Programming". Conteúdo indispensável para qualquer pessoa que deseje saber um mínimo sobre ciências da computação. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From gmpowers em terra.com.br Wed Sep 17 12:21:32 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Re: XML parsing Message-ID: <001201c37d40$23fda430$4c8db0c8@gm> Apenas para indicar o XML::Smart, já que eu sou o autor! ;-P GMP. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20030917/f393b0ea/attachment.htm From glasswalk3r em yahoo.com.br Thu Sep 18 07:18:38 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] livros de Perl de brinde Message-ID: <20030918121838.76313.qmail@web20203.mail.yahoo.com> Não acho isso muito bonito, mas enfim... Fui procurar algo sobre sinais enviados pelo teclado para capturar com Perl... Fui no Google... digitei exatamente isso: "signals keyboard Perl". Podem ir lá e tomar um susto no segundo resultado... Aproveitando o ensejo, estou tentando adaptar um script de Perl para a velharia que roda aqui (Perl 5.003) que implementa o programa 'tail' com alguns adendos interessantes. O problema é que o cara mapeia esse sinal aqui: local $SIG{'QUIT'} = sub { exit 0 }; # do not core dump que teoricamente deveria ser CRTL+BACKSPACE para sair do programa. Não funciona senhores, porque o sinal QUIT não está disponível aqui. Alguma outra idéia? Para os mais afoitos em dar uma força, o script está disponível no CPAN como tail. Puntaplexos, ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Thu Sep 18 12:21:20 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] livros de Perl de brinde References: <20030918121838.76313.qmail@web20203.mail.yahoo.com> Message-ID: <3F69E990.1030904@terra.com.br> Alceu R. de Freitas Jr. wrote: > Não acho isso muito bonito, mas enfim... > Fui procurar algo sobre sinais enviados pelo teclado > para capturar com Perl... > Fui no Google... digitei exatamente isso: "signals > keyboard Perl". > > Podem ir lá e tomar um susto no segundo resultado... Bem "viadu", rimado: Meu caro Alceu Eu leu, leu, leu, tentou de verdade, mas não entendeu. Você explica por favor O motivo de tanto horror E aponta de qual website surgiru o tal byte? > Aproveitando o ensejo, estou tentando adaptar um > script de Perl para a velharia que roda aqui (Perl > 5.003) que implementa o programa 'tail' com alguns > adendos interessantes. > > O problema é que o cara mapeia esse sinal aqui: > local $SIG{'QUIT'} = sub { exit 0 }; # do not core > dump > > que teoricamente deveria ser CRTL+BACKSPACE para sair > do programa. Não funciona senhores, porque o sinal > QUIT não está disponível aqui. Alguma outra idéia? uma muito boa. Tente usar perl -MCPAN -e 'install perl 5.8.0' > Para os mais afoitos em dar uma força, o script está > disponível no CPAN como tail. Tem autor? URL? Nome do pacote? Talvez eu possa ajudar. Mas preciso encontrar o programa primeiro... =-] []'z! e boa sorte... -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From nferraz em phperl.com Thu Sep 18 08:56:18 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Code Review Ladder mailing list Message-ID: <3F69B982.7050006@phperl.com> Simon Cozens criou uma lista para revisão de códigos em Perl. O que vocês acham da iniciativa? /"I've been threatening to do it for a while, but now I've caved in, and set up the code review ladder mailing list ." //"Part of the reason why I think some CPAN uploads are rubbish -- including some of my own -- is that people develop in isolation, and no one gets a chance to look over code before release. Other people can spot obvious mistakes or better ways to do something if they're a little further away from the action. / /The idea behind the mailing list is that you can post your code to be reviewed, and if you get good feedback, you ought to feel some kind of moral obligation to help the next guy along. I've taken the concept from the go teaching ladder , where it seems to work quite well. / /This isn't just for CPAN code, although improving CPAN is an intended goal. Post any code you'd like reviewed, and if we reach critical mass, you'll hopefully get some decent improvements on it."/ http://use.perl.org/articles/03/09/01/2138209.shtml?tid=1 http://lists.netthink.co.uk/listinfo/code-review-ladder []s Nelson From glasswalk3r em yahoo.com.br Thu Sep 18 15:06:39 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] livros de Perl de brinde In-Reply-To: <3F69E990.1030904@terra.com.br> Message-ID: <20030918200639.90546.qmail@web20207.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > Bem "viadu", rimado: > > Meu caro Alceu > Eu leu, leu, leu, > tentou de verdade, > mas não entendeu. > > Você explica por favor > O motivo de tanto horror > E aponta de qual website > surgiru o tal byte? Luis, o que você comeu (ou bebeu) no almoço hoje? Diga-nos para termos certeza de não irmos lá. :-) Vou dar uma colher de chá para você: http://www.google.com.br/search?sourceid=mozclient&ie=utf-8&oe=utf-8&q=signals+keyboard+Perl O segundo resultado aponta para este link: http://www.kfunigraz.ac.at/edvndwww/books/books/perl2/index/idx_k.htm Esta mensagem será destruída em 3 minutos... > uma muito boa. Tente usar > perl -MCPAN -e 'install perl 5.8.0' > Inviável: eu precisaria fazer isso em toda a estação que for usar o programa e isso é trabalho demais para usar um "tail". Além do mais, eu preciso de direitos de administrador, que não tenho. Ao invés disso, eu precisaria de uma indicação de combinação de teclas CRTL + "qualquer coisa" e o sinal correspondente. Pode ser até numlock que eu aceito. > Tem autor? URL? Nome do pacote? > Talvez eu possa ajudar. Mas preciso encontrar o > programa primeiro... =-] Not a package. A single script: http://search.cpan.org/author/SDAGUE/ppt-0.12/bin/tail Eu tive que rescrever algumas partes simples: meu Perl velho aqui não gosta de declarações do tipo: for my $var(@lista) ele fica meio perdido, coitado. Mas o problema maior é lidar com o sinal do teclado: chega a ser engraçado eu não conseguir sair do "tail -f": o crtl+c serve para mostrar detalhes do arquivo que estou monitorando. []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From glasswalk3r em yahoo.com.br Thu Sep 18 15:10:02 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Code Review Ladder mailing list In-Reply-To: <3F69B982.7050006@phperl.com> Message-ID: <20030918201002.65843.qmail@web20201.mail.yahoo.com> Bastante interessante! Mas para os que realmente postam ou devolvem seu código para a comunidade, como criadores de módulos. Qualquer projeto serve? (acho que vou remeter os meus...) --- Nelson Ferraz escreveu: > Simon Cozens > criou uma lista para > revisão de códigos em Perl. O que vocês acham da > iniciativa? ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From vivan em dim.fm.usp.br Thu Sep 18 18:39:48 2003 From: vivan em dim.fm.usp.br (Adriano Vivan Borro) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] livros de Perl de brinde References: <20030918121838.76313.qmail@web20203.mail.yahoo.com> Message-ID: <3F6A4244.79FF2AC4@dim.fm.usp.br> Eh, meu amigo.... D vez em qdo agente acha algo interessante na Internet. Principalmente qdo nao estamos procurando. :-D E esse site tem d tudo. Ateh fontes, senhas e fotos de... ah... deixa pra lah... Afinal, vou ver c descolo aki um cd e gravo essas maravilhas, antes q descubram e tirem o site do ar, ou bloqueiem. Valeu Alceu !! []'s Alceu R. de Freitas Jr. wrote: > Não acho isso muito bonito, mas enfim... > Fui procurar algo sobre sinais enviados pelo teclado > para capturar com Perl... > Fui no Google... digitei exatamente isso: "signals > keyboard Perl". > > Podem ir lá e tomar um susto no segundo resultado... > > Aproveitando o ensejo, estou tentando adaptar um > script de Perl para a velharia que roda aqui (Perl > 5.003) que implementa o programa 'tail' com alguns > adendos interessantes. > > O problema é que o cara mapeia esse sinal aqui: > local $SIG{'QUIT'} = sub { exit 0 }; # do not core > dump > > que teoricamente deveria ser CRTL+BACKSPACE para sair > do programa. Não funciona senhores, porque o sinal > QUIT não está disponível aqui. Alguma outra idéia? > > Para os mais afoitos em dar uma força, o script está > disponível no CPAN como tail. > > Puntaplexos, > > ===== > Alceu Rodrigues de Freitas Junior > -------------------------------------- > glasswalk3r@yahoo.com.br > http://www.imortais.cjb.net > ----------------------------------------------------------------------- > "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill > > _______________________________________________________________________ > Desafio AntiZona: participe do jogo de perguntas e respostas que vai > dar um Renault Clio, computadores, câmeras digitais, videogames e muito > mais! www.cade.com.br/antizona > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > > -------------------------- > Esta mensagem foi verificada > pelo sistema de antivírus DIM e > acredita-se estar livre de Virus. > Virus data file v4293 created Sep 17 2003 From flavio.correa em pop.com.br Fri Sep 19 09:16:29 2003 From: flavio.correa em pop.com.br (=?iso-8859-1?q?Fl=E1vio=20de=20Vasconcellos=20Corr=EAa?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?N=FAmeros?= Flutuantes In-Reply-To: <3F686BAC.6060901@terra.com.br> References: <20030913183006.7758de63.frighetti@cascavel.pm.org> <200309161857.35072.flavio.correa@pop.com.br> <3F686BAC.6060901@terra.com.br> Message-ID: <200309191116.29902.flavio.correa@pop.com.br> Em Qua 17 Set 2003 11:11, Luis Campos de Carvalho escreveu: > > Eu discordo. Perl responde muito bem à fração 1/5: > > perl -le 'print 1/5;' > 0.2 > Pode até ser mas, perl -le 'print "%0.55f\n" 1/5', gera 0.2000000000000000111022302462515654042363166809082031250 então como é que ficamos? > > perl -e 'printf "%0.55f\n", ((-3*5)/5)+3;', se você acompanhar o cálculo > > só existem números inteiros. > > Novamente, eu discordo. > Todas as passagens desta conta, exceto a primeira, são números > fracionários. Não são utilizados números reais, e o meu perl (sobre > linux) responde '0' para esta conta, como era de se esperar. > Posso ter me expresado mal, mas eu não afirmei que o comando acima não responderia como '0'. > > Não me lembro se no perl tem typecast, deve ter ;), tome cuidado com os > > arredontamentos consecutivos nos cálculos, você pode ser o inferno de um > > setor estatístico/financeiro. > > A pesar de não existir typecast, no sentido estrito da palavra (não > confundam com de-referência de referências de alto nível!), perl tem > muitos módulos interessante para lidar com matemática. > Dê uma espiada aqui: > > http://search.cpan.org/search?query=math&mode=all > Valeu pela refererência, não havia olhado antes, é ótima. ;) > > Ah! Parabéns pela transcrição sobre ponto-flutuante e arredondamento, > foi ótima. > > []'z! From lechamps em terra.com.br Fri Sep 19 10:54:30 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?ISO-8859-1?Q?N=FAmeros_Flutuantes?= References: <20030913183006.7758de63.frighetti@cascavel.pm.org> <200309161857.35072.flavio.correa@pop.com.br> <3F686BAC.6060901@terra.com.br> <200309191116.29902.flavio.correa@pop.com.br> Message-ID: <3F6B26B6.7080402@terra.com.br> Flávio de Vasconcellos Corrêa wrote: > Em Qua 17 Set 2003 11:11, Luis Campos de Carvalho escreveu: > >> Eu discordo. Perl responde muito bem à fração 1/5: >> >> perl -le 'print 1/5;' >> 0.2 > > Pode até ser mas, perl -le 'print "%0.55f\n" 1/5', gera > > 0.2000000000000000111022302462515654042363166809082031250 > > então como é que ficamos? > Ops. você tem razão. =-] Desculpe. Eu fui mais depressa com os dedos do que com a cabeça. perl -e 'printf "%0.55f\n", 1/5;' Responde exatamente com o que você postou. Como ficamos? Bom, acho que temos de viver com isso. Tenho certeza de que contas comerciais (soma, subtração, multiplicação e divisão com baixa precisão) não são afetadas por este "bug". Agora, se você estiver projetando foguetes, #!/usr/bin/perl use C; __END__ -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From nferraz em phperl.com Fri Sep 19 11:07:59 2003 From: nferraz em phperl.com (Nelson C. T. Ferraz) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?ISO-8859-1?Q?N=FAmeros_Flutuantes?= In-Reply-To: <3F6B26B6.7080402@terra.com.br> References: <20030913183006.7758de63.frighetti@cascavel.pm.org> <200309161857.35072.flavio.correa@pop.com.br> <3F686BAC.6060901@terra.com.br> <200309191116.29902.flavio.correa@pop.com.br> <3F6B26B6.7080402@terra.com.br> Message-ID: <3F6B29DF.5070402@phperl.com> Luis Campos de Carvalho wrote: > Como ficamos? Bom, acho que temos de viver com isso. > Tenho certeza de que contas comerciais (soma, subtração, multiplicação > e divisão com baixa precisão) não são afetadas por este "bug". > > Agora, se você estiver projetando foguetes, > > #!/usr/bin/perl > use C; > __END__ Na verdade isto não é um bug da linguagem, é uma característica da aritmética de ponto flutuante. Você terá resultados parecidos em C, Java ou qualquer outra linguagem de programacão. Por exemplo: #include int main() { printf ("%1.50f", 1/5); } Retorna o seguinte resultado: $ gcc float.c -o float $ ./float -1.99854278564453125000000000000000000000000000000000 []s Nelson From glasswalk3r em yahoo.com.br Mon Sep 22 10:42:02 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] mapeando pixels numa imagem Message-ID: <20030922154202.57196.qmail@web20209.mail.yahoo.com> Olá lista, Esta pergunta é boa (pelo menos eu acho!). Um professor de Computação gráfica na minha faculdade acha divertido nos mandar criar animações gráficas usando C++ e uma biblioteca mais velha que andar pra frente da Borland (à saber, graphs.h). Ele escolheu um desenho enorme, e temos que desenhá-lo usando pontos, traços, etc. Só que para o desenho ficar fiel, é ideal trabalhar com comandos do tipo: line(x1,y1,x2,y2); Esse comando traça uma linha de um ponto à outro. Agora vem o Perl. :-) Eu gostaria de saber se é possível scannear a figura num formato que Perl possa checar as coodernadas utilizadas e criar instruções como o exemplo acima para os pontos encontrados. Na verdade não precisa ser assim: essa foi uma forma que eu encontrei para resolver o problema. Se alguém souber de outra... []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From nferraz em phperl.com Mon Sep 22 11:53:09 2003 From: nferraz em phperl.com (Nelson C. T. Ferraz) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] mapeando pixels numa imagem In-Reply-To: <20030922154202.57196.qmail@web20209.mail.yahoo.com> References: <20030922154202.57196.qmail@web20209.mail.yahoo.com> Message-ID: <3F6F28F5.10906@phperl.com> > Eu gostaria de saber se é possível scannear a figura > num formato que Perl possa checar as coodernadas > utilizadas e criar instruções como o exemplo acima > para os pontos encontrados. Você poderia simplesmente listar os pontos da figura em um arquivo-texto: 1,1 2,3 4,0 etc. E usar Perl para gerar o programa em C: my ($x1,$y1,$x2,$y2); while (<>) { chomp; ($x1,$y1) = split(",",$_); print "line ($x1,$y1,$x2,$y2);\n"; ($x2,$y2) = ($x1,$y1); } []s Nelson From glasswalk3r em yahoo.com.br Mon Sep 22 12:27:53 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] mapeando pixels numa imagem In-Reply-To: <3F6F28F5.10906@phperl.com> Message-ID: <20030922172753.32327.qmail@web20210.mail.yahoo.com> Nâo é bem isso Nelson... a questão é que eu não quero realmente é calcular as coordenadas do desenho (que está num papel quadriculado)... isso é realmente a parte chata do trabalho, sem contar que é muito simples cometer erros em cascata... Eu realmente gostaria de extrair esses dados diretamente da figura. []´s Alceu --- "Nelson C. T. Ferraz" escreveu: > > Eu gostaria de saber se é possível scannear a > figura > > num formato que Perl possa checar as coodernadas > > utilizadas e criar instruções como o exemplo acima > > para os pontos encontrados. > > Você poderia simplesmente listar os pontos da figura > em um arquivo-texto: > > 1,1 > 2,3 > 4,0 > etc. > > E usar Perl para gerar o programa em C: > > my ($x1,$y1,$x2,$y2); > while (<>) { > chomp; > ($x1,$y1) = split(",",$_); > print "line ($x1,$y1,$x2,$y2);\n"; > ($x2,$y2) = ($x1,$y1); > } > > []s > > Nelson > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From fglock em pucrs.br Mon Sep 22 13:01:17 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] mapeando pixels numa imagem References: <20030922172753.32327.qmail@web20210.mail.yahoo.com> Message-ID: <3F6F38ED.35C0@pucrs.br> Alceu R. de Freitas Jr. wrote: > > a questão é que eu não quero > realmente é calcular as coordenadas do desenho (que > está num papel quadriculado)... isso é realmente a > parte chata do trabalho, sem contar que é muito > simples cometer erros em cascata... > > Eu realmente gostaria de extrair esses dados > diretamente da figura. A biblioteca "PDL" pode fazer isso, eu já usei para uma aplicação parecida: http://pdl.perl.org/ A documentação é bem ruim! Mas vale a pena, se você tem tempo para estudar... - Flavio S. Glock From lechamps em terra.com.br Mon Sep 22 13:23:36 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] mapeando pixels numa imagem References: <20030922154202.57196.qmail@web20209.mail.yahoo.com> Message-ID: <3F6F3E28.3060108@terra.com.br> Alceu R. de Freitas Jr. wrote: > Olá lista, > Eu gostaria de saber se é possível scannear a figura > num formato que Perl possa checar as coodernadas > utilizadas e criar instruções como o exemplo acima > para os pontos encontrados. > Na verdade não precisa ser assim: essa foi uma forma > que eu encontrei para resolver o problema. Se alguém > souber de outra... > Acho que sim, Alceu. Desculpe a demora, mas tenho problemas com meu Mail Client. Penso que você possa usar a Gimp.pm, e procurar saber como fazer tracing da sua imagem. Não vai ficar lindo como se você tivessse feito a mão, mas certamente vai ser muito mais depressa do que qualquer outra técnica que você tenha descoberto. []'z! e boa sorte. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lscosta em uninet.com.br Tue Sep 23 11:01:25 2003 From: lscosta em uninet.com.br (Leandro Costa) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Inversao de variavel Message-ID: <007101c381eb$f174fee0$c801010a@0005p> Ola Galera, Estou fazendo uma programa para gerar o DNS reverso atraves de um script perl Parei no seguinte problema: variavel : 10.1.0.1 Como faco para inverter os octetos ? grato Leandro From lechamps em terra.com.br Tue Sep 23 11:43:30 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Inversao de variavel References: <007101c381eb$f174fee0$c801010a@0005p> Message-ID: <3F707832.3040200@terra.com.br> Leandro Costa wrote: > Ola Galera, > > Estou fazendo uma programa para gerar o DNS reverso atraves de um script > perl > Parei no seguinte problema: > variavel : 10.1.0.1 > Como faco para inverter os octetos ? > # Bico! sub reverse_octets{ my $ip = shift || '127.0.0.1'; return $ip =~ m/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ? "$4.$3.$2.$1" : undef; } # para usar: print reverse_octets '200.10.5.1'; Se você se interessar como funciona, o Alceu explica! =-] -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Tue Sep 23 13:11:20 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Inversao de variavel In-Reply-To: <3F707832.3040200@terra.com.br> Message-ID: <20030923181120.32272.qmail@web20205.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > > # Bico! > sub reverse_octets{ > my $ip = shift || '127.0.0.1'; > return > $ip =~ > m/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ? > "$4.$3.$2.$1" : undef; > } > > # para usar: > print reverse_octets '200.10.5.1'; > > Se você se interessar como funciona, o Alceu > explica! =-] "$4.$3.$2.$1" : undef; Para ser sincero, não entendi a função dos ":" na linha acima. Eu lembro vagamente que Perl tem uma estrutura que emula um if-then-else, mas eu nunca usei... seria isso? []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill _______________________________________________________________________ Desafio AntiZona: participe do jogo de perguntas e respostas que vai dar um Renault Clio, computadores, câmeras digitais, videogames e muito mais! www.cade.com.br/antizona From lechamps em terra.com.br Tue Sep 23 13:54:11 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Inversao de variavel References: <20030923181120.32272.qmail@web20205.mail.yahoo.com> Message-ID: <3F7096D3.5090707@terra.com.br> Alceu R. de Freitas Jr. wrote: > --- Luis Campos de Carvalho > escreveu: > >> # Bico! >> sub reverse_octets{ >> my $ip = shift || '127.0.0.1'; >> return >> $ip =~ >>m/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ? >> "$4.$3.$2.$1" : undef; >> } >> >> # para usar: >> print reverse_octets '200.10.5.1'; >> >> Se você se interessar como funciona, o Alceu >>explica! =-] > > > "$4.$3.$2.$1" : undef; > > Para ser sincero, não entendi a função dos ":" na > linha acima. Eu lembro vagamente que Perl tem uma > estrutura que emula um if-then-else, mas eu nunca > usei... seria isso? > =-] Desculpe. Eu virei o fogo para o seu lado, e nem sabia se você estava com as batatas prontas para assar... eheheh.... Quanto à sintaxe maluca, vamos entender, então. Se você algum dia usou C, deve ter cruzado com o operador ternário (de três caracteres) que C usa para emular um if-then-else "inline", isso é, em uma única expressão que retorna um 'rvalue', um valor que pode ser atribuído a expressões do tipo 'lvalue' (variáveis e outros "quitutes"). O operador é o ? : ; note os sinais de pontuação. O funcionamento é simples: se é uma expressão que resolve para "true", o operador ?: retorna . Caso resolva para "false", o operador ?: retorna . De volta no casinho da inversão de octetos: return $ip =~ m/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ? "$4.$3.$2.$1" : undef; Repare no operador ?:, em torno desta baderna. O que temos, na verdade, é um pattern match (que retorna a quantidade de matches conseguidos, em contexto escalar), usado como do operador '?:'. Para completar, temos == "$4.$3.$2.$1" == undef Assim, a instrução pergunta: "Isto parece com um endereço IP?" E, se a resposta for "sim", retorna o valor invertido "$4.$3.$2.$1". Caso a resposta seja "não", retorna undef, para indicar erro. Espero que esteja claro agora. Será que o Leandro conseguiu usar essa coisa? []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is Computer Scientist, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From falmp em terra.com.br Tue Sep 23 13:46:34 2003 From: falmp em terra.com.br (Francisco Lopes) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Inversao de variavel In-Reply-To: <20030923181120.32272.qmail@web20205.mail.yahoo.com> References: <20030923181120.32272.qmail@web20205.mail.yahoo.com> Message-ID: <1605351272.20030923154634@terra.com.br> Sim, é apenas uma outra forma de escrever. condição ? comando se "true" : comando se "false"; Abraço. Francisco Lopes, aka pulpfiction Tuesday, September 23, 2003, 3:11:20 PM, you wrote: > --- Luis Campos de Carvalho > escreveu: >> >> # Bico! >> sub reverse_octets{ >> my $ip = shift || '127.0.0.1'; >> return >> $ip =~ >> m/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ? >> "$4.$3.$2.$1" : undef; >> } >> >> # para usar: >> print reverse_octets '200.10.5.1'; >> >> Se você se interessar como funciona, o Alceu >> explica! =-] > "$4.$3.$2.$1" : undef; > Para ser sincero, não entendi a função dos ":" na > linha acima. Eu lembro vagamente que Perl tem uma > estrutura que emula um if-then-else, mas eu nunca > usei... seria isso? > []´s > ===== > Alceu Rodrigues de Freitas Junior > -------------------------------------- > glasswalk3r@yahoo.com.br > http://www.imortais.cjb.net > ----------------------------------------------------------------------- > "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill > _______________________________________________________________________ > Desafio AntiZona: participe do jogo de perguntas e respostas que vai > dar um Renault Clio, computadores, câmeras digitais, videogames e muito > mais! www.cade.com.br/antizona > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm From lscosta em uninet.com.br Fri Sep 26 17:56:03 2003 From: lscosta em uninet.com.br (Leandro Costa) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Documentacao Perl+Postgresql+html Message-ID: <001b01c38481$5e992bd0$6f10dcc8@xmen> Fala Galera Onde consigo uma boa documenta e bastante exemplos de como trabalhar com perl+postgresql+html ? Grato Leandro From nferraz em phperl.com Sat Sep 27 11:53:26 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Documentacao Perl+Postgresql+html In-Reply-To: <001b01c38481$5e992bd0$6f10dcc8@xmen> References: <001b01c38481$5e992bd0$6f10dcc8@xmen> Message-ID: <3F75C086.10606@phperl.com> > Onde consigo uma boa documenta e bastante exemplos de como trabalhar com > perl+postgresql+html ? Leandro, Talvez este documento possa ajudá-lo: http://www.gnubis.com.br/cgi-local/twiki/bin/view/SIGL/WebHome O documento apresenta um exemplo completo em Perl e PostgreSQL, usando Template Toolkit para gerar HTML. -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From glasswalk3r em yahoo.com.br Tue Sep 30 13:00:23 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?iso-8859-1?q?monitora=E7=E3o_de_processamento?= Message-ID: <20030930180023.19944.qmail@web20203.mail.yahoo.com> Olá lista, Está dúvida é mais conceitual do que diretamente relacionada à Perl, mas lá vai... Imaginem que quero executar um processo mediante requisição HTTP com um CGI. Digamos que esse processamento demore, então não quero que o usuário pense que o servidor parou de responder: quero abrir uma janela usando a meta tag de refresh (no documento HTML), mostrando o progresso do processamento. O processo que roda no servidor pode gerar uma saída, com por exemplo 23/80 (23 processados de 80). Eu quero que, cada vez que o refresh da página ocorra, o CGI receba uma requisição e atualize o status da página. Até onde pensei, eu teria que usar cookies ou campos ocultos ou ainda colocar parâmetros na URL para o CGI identificar que o usuário em questão já tem um processo executando... O CGI no caso identifica a requisição (já "antiga"), checa o processamento rodando e sua apresenta sua saída. Queria fazer algo dinâmico, não ficar sobreescrevendo uma página em html no servidor. Eu apreciaria idéias, mesmo que implementem de forma diferente o que eu pensei aqui. Abraços, ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill Yahoo! Mail - o melhor webmail do Brasil http://mail.yahoo.com.br From ednardo em lobosnet.com Tue Sep 30 13:48:26 2003 From: ednardo em lobosnet.com (Ednardo Lobo) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] =?iso-8859-1?Q?monitora?= =?iso-8859-1?B?5+Nv?= de processamento In-Reply-To: <20030930180023.19944.qmail@web20203.mail.yahoo.com> References: <20030930180023.19944.qmail@web20203.mail.yahoo.com> Message-ID: <20030930184826.GB276@pinguim.elobo.cjb.net> On Tue, Sep 30, 2003 at 03:00:23PM -0300, Alceu R. de Freitas Jr. wrote: > Olá lista, > > Está dúvida é mais conceitual do que diretamente relacionada à Perl, > mas lá vai... > > Imaginem que quero executar um processo mediante requisição HTTP com > um CGI. Digamos que esse processamento demore, então não quero que o > usuário pense que o servidor parou de responder: quero abrir uma > janela usando a meta tag de refresh (no documento HTML), mostrando o > progresso do processamento. O processo que roda no servidor pode gerar > uma saída, com por exemplo 23/80 (23 processados de 80). Eu quero que, > cada vez que o refresh da página ocorra, o CGI receba uma requisição e > atualize o status da página. Até onde pensei, eu teria que usar > cookies ou campos ocultos ou ainda colocar parâmetros na URL para > o CGI identificar que o usuário em questão já tem um processo > executando... > > O CGI no caso identifica a requisição (já "antiga"), checa o > processamento rodando e sua apresenta sua saída. > > Queria fazer algo dinâmico, não ficar sobreescrevendo uma página em > html no servidor. > > Eu apreciaria idéias, mesmo que implementem de forma diferente o que > eu pensei aqui. > > Abraços, > Não sou um "expert" em protocolo HTTP e nem em JavaScript, mas conheço bem o funcionamento do protocolo e um pouco de como o JavaScript atua no navegador. Entretanto, tenho quase certeza que enquanto o navegador aguarda o retorno de uma requisição nenhuma outro operação, nem mesmo via JavaScript pode ser realizada no navegador. Então acho que usar JavaScript para gerar um status de processamento não é a saída. O servidor HTTP, entretanto, devolve a saída do "script" acionado via CGI, se esse estiver com o seu dispositivo de no modo "não bufferizado" ($| = 1), a medida que ela for sendo gerada. Você pode se valer disso para retornar informações ao navegador a medida que o "script" é processado. E essa saída poderá ser em formado 'text/plain', 'text/html' e até mesmo 'image/*'. Com isso, você permitir que o usuário acompanhe o processamento do 'script' da maneira que achar mais intuitiva, seja através de uma barra de progresso em texto ou gráfica. Estou certo de que isso funciona, entretanto, não sei como o navegador irá compor a barra de progresso, caso essa seja uma imagem. Provavelmente, há outras maneiras de se fazer isso e gostaria de conhecê-las. Se alguém tiver alguma outro sugestão ... Alceu, se chegar a implementar a solução que propus, por favor, me dê um feedback. Boa sorte, -- Ednardo Lobo LOBO's NET - www.lobosnet.com From vivan em dim.fm.usp.br Tue Sep 30 20:29:42 2003 From: vivan em dim.fm.usp.br (Adriano Vivan Borro) Date: Mon Aug 2 21:26:47 2004 Subject: [Cascavel-pm] Duvida basica... References: <3F607E6E.6060105@terra.com.br> <3F60E2E8.A7469488@dim.fm.usp.br> <3F60EAD3.9090708@terra.com.br> <3F621BF2.42CD8761@dim.fm.usp.br> <3F621D95.8000002@terra.com.br> <3F67AD5C.A6D79D96@dim.fm.usp.br> Message-ID: <3F7A2E06.93D4B27A@dim.fm.usp.br> Oi Lista, Estou com uma duvida bem basica aki com o perl. Ateh consegui uma saida, mas com certeza existe alguma forma de fazer o q quero mais eficientemente. Enfim, ae vai meu problema: $x possui no maximo 10 caracteres Se $x possuir menos que 10 caracteres, inserir o caractere "X " nas ultimas posicoes da variavel, ateh completa-la com 10 caracteres Tks, Adriano.