From luismottacampos em yahoo.co.uk Sat Sep 1 06:55:37 2007 From: luismottacampos em yahoo.co.uk (Luis Motta Campos) Date: Sat, 1 Sep 2007 15:55:37 +0200 Subject: [Cascavel-pm] Ler arquivo - ultimas linhas In-Reply-To: References: <20070831_202332_027277.rafamv1@ig.com.br> Message-ID: <200709011555.37586.luismottacampos@yahoo.co.uk> On Friday 31 August 2007 23:05, Nelson Ferraz wrote: > >>> Pessoal.. tem como eu ler as 3 ultimas linhas de um arquivo?? :D > > > > system ("tail -3 arquivo"); > > Rafael, > > Tem dois erros aí: > > 1) system não retorna os valores do programa externo; para ler o > resultado você precisaria usar backticks: > > my @result = `tail -n 3 arquivo`; Argh. Funciona, mas é feio. Tente usar open para a mesma coisa: open my $programa, '<', '/caminho/para/programa|' or die $!; # $programa é um filehandle, leia a saída do seu programa daqui close $programa or die $!; Isso é mais elegante e permite tratar melhor os erros, e ainda permite que você leia a saída do programa em "parcelas" (com sysread(), por exemplo). Para que você quer ler a saída do programa em "prestações"? Bom, se você tiver uma saída muito grande, ler à prestação pode economizar MUITA memória... > 2) você deve evitar usar chamadas para o sistema (system e backticks) > quando você pode resolver seu problema em perl. Tem todo o meu apoio! Não existe um módulo para fazer seja-lá-o-que-você-quer? > Na verdade o #2 é mais um alerta do que um erro. Você pode fazer da > maneira como sugeriu, mas existem soluções melhores. Onde você leu "soluções melhores", leia "Soluções...": Mais baratas Mais simples Mais elegantes Mais fáceis de manter Mais fáceis de extender Mais rápidas Mais rentáveis Putamplexos! -- Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer, Perl fanatic evangelist, and amateur {cook, photographer} From karentaga em gmail.com Sat Sep 1 15:34:23 2007 From: karentaga em gmail.com (Karen Taga) Date: Sat, 1 Sep 2007 19:34:23 -0300 Subject: [Cascavel-pm] Download de arquivo Message-ID: Tenho o seguinte código em javascript para salvar arquivos localmente: newFrame.document.open("text/html","replace"); newFrame.document.write("blah blah blah"); newFrame.document.close(); newFrame.focus(); newFrame.document.execCommand('SaveAs',false,'date.tax'); ele funciona bem no ie, mas não no firefox... alguem conhece uma alternativa? ha um script em perl para fazer isso? []´s Karen -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070901/93d5eeda/attachment.html From edencardim em gmail.com Sat Sep 1 16:39:13 2007 From: edencardim em gmail.com (eden) Date: Sat, 1 Sep 2007 20:39:13 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: References: Message-ID: <3de55ead0709011639s3a6480c9sbb151aa795adb2b4@mail.gmail.com> On 9/1/07, Karen Taga wrote: > Tenho o seguinte código em javascript para salvar arquivos localmente: > > newFrame.document.open("text/html","replace"); > newFrame.document.write("blah blah blah"); > newFrame.document.close(); > newFrame.focus(); > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > alternativa? ha um script em perl para fazer isso? Na maioria dos casos, o perl roda no lado do servidor. Existe uma solução client-side chamado perlscript mas pouca gente usa então não dá para contar com ela. Porque você não serve os arquivos por http como é feito normalmente em casos como esse? -- edenc.vox.com From glasswalk3r em hotmail.com Sun Sep 2 07:39:00 2007 From: glasswalk3r em hotmail.com (Alceu Rodrigues de Freitas Junior) Date: Sun, 2 Sep 2007 17:39:00 +0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: References: Message-ID: Date: Sat, 1 Sep 2007 19:34:23 -0300 From: karentaga em gmail.com Tenho o seguinte código em javascript para salvar arquivos localmente: newFrame.document.open("text/html","replace"); newFrame.document.write("blah blah blah"); newFrame.document.close(); newFrame.focus(); newFrame.document.execCommand('SaveAs',false,'date.tax'); ele funciona bem no ie, mas não no firefox... alguem conhece uma alternativa? ha um script em perl para fazer isso? Karen, esse assunto é off-topic da lista... quando mandar dúvidas assim, escreva [off-topic] no assunto do email, afinal isso é uma lista sobre Perl, principalmente. Se você precisa utilizar controles Javascript para realizar esse download, vai ter que provalvemente identificar qual o browser do visitante e criar código específico para o browser, visto que existem problemas de incompatibilidade entre o Javascript e o Jscript (esse último sendo da Microsoft). Esse é um problema pra lá de velho e provavelmente vai continuar existindo porque a Microsoft se recusa a seguir padrões. No mais, utilize as ferramentas disponíveis com o Firefox para debug de Javascript para lhe ajudar a identificar o problema. []'s Alceu _________________________________________________________________ Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070902/285d09fa/attachment.html From gabriel.vieira em gmail.com Sun Sep 2 08:48:55 2007 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Sun, 2 Sep 2007 12:48:55 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: References: Message-ID: <83d8367f0709020848h21b0f541ud2ebc2bdaf814934@mail.gmail.com> http://www.ietf.org/rfc/rfc1806.txt :) On 9/2/07, Alceu Rodrigues de Freitas Junior wrote: > > ________________________________ > Date: Sat, 1 Sep 2007 19:34:23 -0300 > From: karentaga em gmail.com > > Tenho o seguinte código em javascript para salvar arquivos localmente: > > newFrame.document.open("text/html","replace"); > newFrame.document.write("blah blah blah"); > newFrame.document.close(); > newFrame.focus(); > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > alternativa? ha um script em perl para fazer isso? > > Karen, esse assunto é off-topic da lista... quando mandar dúvidas assim, > escreva [off-topic] no assunto do email, afinal isso é uma lista sobre Perl, > principalmente. > > Se você precisa utilizar controles Javascript para realizar esse download, > vai ter que provalvemente identificar qual o browser do visitante e criar > código específico para o browser, visto que existem problemas de > incompatibilidade entre o Javascript e o Jscript (esse último sendo da > Microsoft). > > Esse é um problema pra lá de velho e provavelmente vai continuar existindo > porque a Microsoft se recusa a seguir padrões. No mais, utilize as > ferramentas disponíveis com o Firefox para debug de Javascript para lhe > ajudar a identificar o problema. > > []'s > Alceu > > ________________________________ > Invite your mail contacts to join your friends list with Windows Live > Spaces. It's easy! Try it! > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Gabriel Vieira From mdacwb em gmail.com Sun Sep 2 09:53:56 2007 From: mdacwb em gmail.com (Marco A P D'Andrade) Date: Sun, 2 Sep 2007 13:53:56 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?saber_se_o_arquivo_est=E1_aberto?= In-Reply-To: <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> References: <557376b60708301602r239f2aabu433666b8e07f9cef@mail.gmail.com> <46D75D94.7090502@terra.com.br> <557376b60708310718v4c5eb7a0w91be51d1dda959ac@mail.gmail.com> <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> Message-ID: <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> Sei que estou um tanto atrasado na questão, mas seguem minhas considerações: Vc poderia ter controle no tempo de execução do robo ? Algo do genero ao término fazer um rotate? (isto é solicitavel a quem controla?) Estes diretórios, são acessados somente por este robo e o seu script, ou por outros processos ? - Se for somente os 2, vc poderia utilizar um "fuser", para ver se algum processo está lendo o arquivo diretorio ... para algo mais elaborado, vc poderia até ver o código do fuser (nao aconselho, mas viajando demais ;) ) ** Nem tanto... ao termino fui buscar em nosso "dicionario" :) http://search.cpan.org/~jstowe/Linux-Fuser-1.4/lib/Linux/Fuser.pm Os arquivos alterados são sempre os mesmos ? Ou existe algum mecanismo para renomear os arquivos anteriores (do genero date yyyymmddhhss, pid ou .old) ? - Se houver, melhor, se não, poderia pedir ? Vc sabe de quanto em quanto tempo os arquivos são reescritos ? Quanto tempo leva ? - Outra abordagem poderia ser o "stat", verificando a ultima alteração, e se for acima do esperado pelo processo, vc poderia iniciar o uso. - eventualmente utilizando também o "fuser". Vc comentou sobre "trailer", indicado no final... - Esta seria uma abordagem que lhe garantiria consistencia, se não estiver marcado como concluido, vc aguarda ;) Agora uma coisa que eu utilizo como pratica preservacionista em meu trabalho... Perl faz mágica, mas eu não. Me digam como controlar a situação (e assumam o risco), e depois não venha me dizer que "Perl não é bom para este problema", pois se não for bem elaborada a solução, vc com certeza ouvirá isto ;) PS: Gastarei mais um paragrafo para pedir desculpas pelo comprimento de meu email eheheh Sds, Marco Antonio Em 31/08/07, Solli Honorio escreveu: > Cara, eu acho que você pode utilizar também o Linux::Inotify2. Este link > (http://peter.makholm.net/2007/08/21/on-handling-email/ ) > possue um exemplo interessante. > > Abaixo tem um código meu mais simples .... > > > #!/usr/bin/perl > use Linux::Inotify2; > > my $inotify = new Linux::Inotify2 > or die "Unable to create new inotify object: $!"; > > $inotify->watch('/tmp/t.txt', IN_ALL_EVENTS) > or die "Watch creation failed: $!" ; # Take a look at the directory for > file changes > > while () { # Loop forever > my @events = $inotify->read; > $e = shift(@events); > my $name = $e->fullname; > print "$name was accessed\n" if $e->IN_ACCESS; > print "$name is no longer mounted\n" if $e->IN_UNMOUNT; > print "$name is gone\n" if $e->IN_IGNORED; > print "$name is close from write\n" if $e->IN_CLOSE_WRITE; > print "$name is opened\n" if $e->IN_OPEN; > print "events for $name have been lost\n" if $e->IN_Q_OVERFLOW; > } > > > On 8/31/07, Flavio Bei wrote: > > opa Ednardo, blz? > > eu não posso renomear ele antes de terminar, pois o processo pra > > renomear vai ser executado junto com uma mudança dop local do arquivo, > > para ele ser processado por outro programa.. > > sei que parece uma zona, mas é um esquema que já funcionava aqui.,... > > mas era manual.. > > > > e hoje apareceu mais uma novidade, esse arquivo vai estar em uso por > > um ftp, então preciso esperar o ftp acabar pra mecher nele... > > > > to tentando o fuser, mas não ta resultando nada útil... > > > > abraços > > > > Em 30/08/07, Luciano Giordani Bassani< lgbassani em terra.com.br> escreveu: > > > Eu não sabia deste pc -C , mas aqui funcionou. > > > Em todo caso, se tu quiser mesmo utilizar o esquema com o grep, eu > recomendo > > > tu mudar para algo assim: > > > $teste = (`ps xa | grep $retorno\$ | grep -v grep`); > > > > > > Isso é para evitar que o próprio comando "ps xa | grep" gere um > > > "falso-positivo". > > > > > > > > > SDS, > > > > > > Luciano > > > > > > > > > > > > Fernando Oliveira escreveu: > > > pq, ao invez de usar 2 comando, não usa só o ps -C nome_prog??? > > > > > > Em 30/08/07, Flavio Bei < flaviobei em gmail.com > escreveu: > > > > consegui uma solução assim, deu certo, mas to com dúvidas... será que > > > > o resultado será sempre preciso? > > > > > > > > o código ficou + - assim > > > > > > > > ########################################## > > > > #!/usr/bin/perl > > > > # sistema que vai buscar em um diretório um determinado arquivo > > > > # caso o arquivo não esteja em uso por nenhum processo ele é renomeado > > > > ########################################## > > > > > > > > use strict; > > > > my $caminho = "/home/user/pasta/"; > > > > my $extensao = "*.txt"; > > > > my $completo = $caminho.$extensao; > > > > my @encontrados; > > > > my $retorno; > > > > my $lista; > > > > my $teste; > > > > > > > > $lista = (`ls -1 $completo`); > > > > > > > > if ($lista ne '') > > > > { > > > > @encontrados = split('\n', $lista); > > > > } > > > > > > > > foreach $retorno (@encontrados) { > > > > > > > > $teste = (`ps xa |grep $retorno\$`); > > > > > > > > if ($teste eq '') > > > > { > > > > #processa o arquivo pois ele não está em uso por nenhum > processo > > > > print ("=======>>> Altera o arquivo $retorno pois não está em > > > uso\n"); > > > > `mv $retorno $retorno.new`; > > > > } > > > > else > > > > { > > > > #não processa o arquivo pois ele está em uso por algum > processo > > > > print ("========>!!!! Não altera o arquivo $retorno\n"); > > > > } > > > > } > > > > ############################################## > > > > deu certo, e está rodando de boa, dai joguei na cron e ele fica > > > > verificando de tempos em tempos... mas não sei se é a sintaxe do ps, > > > > que tem hora que ele não mostra o processo sendo executado por outro > > > > usuário, tem hora que mostra normal... > > > > _______________________________________________ > > > > Cascavel-pm mailing list > > > > Cascavel-pm em pm.org > > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > > > > > > > > -- > > > []'s Fernando ________________________________ > > > > > _______________________________________________ > > Cascavel-pm > > > mailing > > > list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > -- > > -- > > Flávio Bei > > Webdesigner > > (11) 8964 5315 > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > -- > "o animal satisfeito dorme". - Guimarães Rosa > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From karentaga em gmail.com Sun Sep 2 11:46:19 2007 From: karentaga em gmail.com (Karen Taga) Date: Sun, 2 Sep 2007 15:46:19 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: References: Message-ID: ok, terei mais cuidado no próximo tópico! =) acho q postei aqui mais na esperança de me darem uma alternativa em perl... []´s Karen On 9/2/07, Alceu Rodrigues de Freitas Junior wrote: > > ------------------------------ > Date: Sat, 1 Sep 2007 19:34:23 -0300 > From: karentaga em gmail.com > > Tenho o seguinte código em javascript para salvar arquivos localmente: > > newFrame.document.open("text/html","replace"); > newFrame.document.write("blah blah blah"); > newFrame.document.close(); > newFrame.focus(); > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > alternativa? ha um script em perl para fazer isso? > > Karen, esse assunto é off-topic da lista... quando mandar dúvidas assim, > escreva [off-topic] no assunto do email, afinal isso é uma lista sobre Perl, > principalmente. > > Se você precisa utilizar controles Javascript para realizar esse download, > vai ter que provalvemente identificar qual o browser do visitante e criar > código específico para o browser, visto que existem problemas de > incompatibilidade entre o Javascript e o Jscript (esse último sendo da > Microsoft). > > Esse é um problema pra lá de velho e provavelmente vai continuar existindo > porque a Microsoft se recusa a seguir padrões. No mais, utilize as > ferramentas disponíveis com o Firefox para debug de Javascript para lhe > ajudar a identificar o problema. > > []'s > Alceu > > ------------------------------ > Invite your mail contacts to join your friends list with Windows Live > Spaces. It's easy! Try it! > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070902/709a4bb1/attachment-0001.html From gabriel.vieira em gmail.com Sun Sep 2 15:00:05 2007 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Sun, 2 Sep 2007 19:00:05 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: References: Message-ID: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> Dei a alternativa no padrão HTTP que é a utilizada pelos navegadores e servidores. On 9/2/07, Karen Taga wrote: > ok, terei mais cuidado no próximo tópico! =) > acho q postei aqui mais na esperança de me darem uma alternativa em perl... > > []´s > Karen > > > On 9/2/07, Alceu Rodrigues de Freitas Junior > wrote: > > > > > > ________________________________ > Date: Sat, 1 Sep 2007 19:34:23 -0300 > > From: karentaga em gmail.com > > > > > > Tenho o seguinte código em javascript para salvar arquivos localmente: > > > > newFrame.document.open("text/html","replace"); > > newFrame.document.write("blah blah blah"); > > newFrame.document.close(); > > newFrame.focus(); > > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > alternativa? ha um script em perl para fazer isso? > > > > Karen, esse assunto é off-topic da lista... quando mandar dúvidas assim, > escreva [off-topic] no assunto do email, afinal isso é uma lista sobre Perl, > principalmente. > > > > Se você precisa utilizar controles Javascript para realizar esse download, > vai ter que provalvemente identificar qual o browser do visitante e criar > código específico para o browser, visto que existem problemas de > incompatibilidade entre o Javascript e o Jscript (esse último sendo da > Microsoft). > > > > Esse é um problema pra lá de velho e provavelmente vai continuar existindo > porque a Microsoft se recusa a seguir padrões. No mais, utilize as > ferramentas disponíveis com o Firefox para debug de Javascript para lhe > ajudar a identificar o problema. > > > > []'s > > Alceu > > > > ________________________________ > Invite your mail contacts to join your friends list with Windows Live > Spaces. It's easy! Try it! > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Gabriel Vieira From karentaga em gmail.com Sun Sep 2 15:06:31 2007 From: karentaga em gmail.com (Karen Taga) Date: Sun, 2 Sep 2007 19:06:31 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> References: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> Message-ID: sim sim, brigada! On 9/2/07, Gabriel Vieira wrote: > > Dei a alternativa no padrão HTTP que é a utilizada pelos navegadores e > servidores. > > On 9/2/07, Karen Taga wrote: > > ok, terei mais cuidado no próximo tópico! =) > > acho q postei aqui mais na esperança de me darem uma alternativa em > perl... > > > > []´s > > Karen > > > > > > On 9/2/07, Alceu Rodrigues de Freitas Junior > > wrote: > > > > > > > > > ________________________________ > > Date: Sat, 1 Sep 2007 19:34:23 -0300 > > > From: karentaga em gmail.com > > > > > > > > > Tenho o seguinte código em javascript para salvar arquivos localmente: > > > > > > newFrame.document.open("text/html","replace"); > > > newFrame.document.write("blah blah blah"); > > > newFrame.document.close(); > > > newFrame.focus(); > > > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > > > > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > > alternativa? ha um script em perl para fazer isso? > > > > > > Karen, esse assunto é off-topic da lista... quando mandar dúvidas > assim, > > escreva [off-topic] no assunto do email, afinal isso é uma lista sobre > Perl, > > principalmente. > > > > > > Se você precisa utilizar controles Javascript para realizar esse > download, > > vai ter que provalvemente identificar qual o browser do visitante e > criar > > código específico para o browser, visto que existem problemas de > > incompatibilidade entre o Javascript e o Jscript (esse último sendo da > > Microsoft). > > > > > > Esse é um problema pra lá de velho e provavelmente vai continuar > existindo > > porque a Microsoft se recusa a seguir padrões. No mais, utilize as > > ferramentas disponíveis com o Firefox para debug de Javascript para lhe > > ajudar a identificar o problema. > > > > > > []'s > > > Alceu > > > > > > ________________________________ > > Invite your mail contacts to join your friends list with Windows Live > > Spaces. It's easy! Try it! > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > -- > Gabriel Vieira > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070902/13abab7f/attachment.html From mdacwb em gmail.com Sun Sep 2 17:07:45 2007 From: mdacwb em gmail.com (Marco A P D'Andrade) Date: Sun, 2 Sep 2007 21:07:45 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> References: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> Message-ID: <42dcdd750709021707o287e64afxe5b04d4e3df8ccd8@mail.gmail.com> Achei que vc estava de sacanagem... (e pareceu eheh) Mas pela rápida olhada que dei no link, é bem objetivo, e resolve o problema seguindo padrões :) Gabriel++ Em 02/09/07, Gabriel Vieira escreveu: > Dei a alternativa no padrão HTTP que é a utilizada pelos navegadores e > servidores. > > On 9/2/07, Karen Taga wrote: > > ok, terei mais cuidado no próximo tópico! =) > > acho q postei aqui mais na esperança de me darem uma alternativa em perl... > > > > []´s > > Karen > > > > > > On 9/2/07, Alceu Rodrigues de Freitas Junior > > wrote: > > > > > > > > > ________________________________ > > Date: Sat, 1 Sep 2007 19:34:23 -0300 > > > From: karentaga em gmail.com > > > > > > > > > Tenho o seguinte código em javascript para salvar arquivos localmente: > > > > > > newFrame.document.open("text/html","replace"); > > > newFrame.document.write("blah blah blah"); > > > newFrame.document.close(); > > > newFrame.focus(); > > > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > > > > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > > alternativa? ha um script em perl para fazer isso? > > > > > > Karen, esse assunto é off-topic da lista... quando mandar dúvidas assim, > > escreva [off-topic] no assunto do email, afinal isso é uma lista sobre Perl, > > principalmente. > > > > > > Se você precisa utilizar controles Javascript para realizar esse download, > > vai ter que provalvemente identificar qual o browser do visitante e criar > > código específico para o browser, visto que existem problemas de > > incompatibilidade entre o Javascript e o Jscript (esse último sendo da > > Microsoft). > > > > > > Esse é um problema pra lá de velho e provavelmente vai continuar existindo > > porque a Microsoft se recusa a seguir padrões. No mais, utilize as > > ferramentas disponíveis com o Firefox para debug de Javascript para lhe > > ajudar a identificar o problema. > > > > > > []'s > > > Alceu > > > > > > ________________________________ > > Invite your mail contacts to join your friends list with Windows Live > > Spaces. It's easy! Try it! > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > -- > Gabriel Vieira > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From gabriel.vieira em gmail.com Sun Sep 2 17:25:33 2007 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Sun, 2 Sep 2007 21:25:33 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: <42dcdd750709021707o287e64afxe5b04d4e3df8ccd8@mail.gmail.com> References: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> <42dcdd750709021707o287e64afxe5b04d4e3df8ccd8@mail.gmail.com> Message-ID: <83d8367f0709021725oe7e9d82l1dc073cb387fc6e@mail.gmail.com> haha e eu brinco com essas coisas?! hehe :P Deve ter um modulo que simplifica o envio dos dados Abração mda ;) On 9/2/07, Marco A P D'Andrade wrote: > Achei que vc estava de sacanagem... (e pareceu eheh) > > Mas pela rápida olhada que dei no link, é bem objetivo, e resolve o > problema seguindo padrões :) > > Gabriel++ > > > Em 02/09/07, Gabriel Vieira escreveu: > > Dei a alternativa no padrão HTTP que é a utilizada pelos navegadores e > > servidores. > > > > On 9/2/07, Karen Taga wrote: > > > ok, terei mais cuidado no próximo tópico! =) > > > acho q postei aqui mais na esperança de me darem uma alternativa em perl... > > > > > > []´s > > > Karen > > > > > > > > > On 9/2/07, Alceu Rodrigues de Freitas Junior > > > wrote: > > > > > > > > > > > > ________________________________ > > > Date: Sat, 1 Sep 2007 19:34:23 -0300 > > > > From: karentaga em gmail.com > > > > > > > > > > > > Tenho o seguinte código em javascript para salvar arquivos localmente: > > > > > > > > newFrame.document.open("text/html","replace"); > > > > newFrame.document.write("blah blah blah"); > > > > newFrame.document.close(); > > > > newFrame.focus(); > > > > newFrame.document.execCommand('SaveAs',false,'date.tax'); > > > > > > > > ele funciona bem no ie, mas não no firefox... alguem conhece uma > > > alternativa? ha um script em perl para fazer isso? > > > > > > > > Karen, esse assunto é off-topic da lista... quando mandar dúvidas assim, > > > escreva [off-topic] no assunto do email, afinal isso é uma lista sobre Perl, > > > principalmente. > > > > > > > > Se você precisa utilizar controles Javascript para realizar esse download, > > > vai ter que provalvemente identificar qual o browser do visitante e criar > > > código específico para o browser, visto que existem problemas de > > > incompatibilidade entre o Javascript e o Jscript (esse último sendo da > > > Microsoft). > > > > > > > > Esse é um problema pra lá de velho e provavelmente vai continuar existindo > > > porque a Microsoft se recusa a seguir padrões. No mais, utilize as > > > ferramentas disponíveis com o Firefox para debug de Javascript para lhe > > > ajudar a identificar o problema. > > > > > > > > []'s > > > > Alceu > > > > > > > > ________________________________ > > > Invite your mail contacts to join your friends list with Windows Live > > > Spaces. It's easy! Try it! > > > > _______________________________________________ > > > > Cascavel-pm mailing list > > > > Cascavel-pm em pm.org > > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > > > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > -- > > Gabriel Vieira > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Gabriel Vieira From ptfzs em yahoo.com.br Mon Sep 3 05:01:10 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 09:01:10 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV Message-ID: <550469.89646.qm@web31314.mail.mud.yahoo.com> Ola Pessoal... tenho um arquivo em CSV, que contem o cabeçalho contendo as variaveis e os dados logo depois... estou tentando usar o Text:CSV open CSV, $file or die $!; my @csv_content = ; close CSV;my $csv = Text::CSV->new(); foreach(@csv_content){ if($csv->parse($_)){ @values = $csv->fields(); $status = $csv->combine(@values); $line = $csv->string(); $statement = "INSERT INTO $table($field_line) VALUES($line);"; print $statement."\n"; $sth = $dbh->prepare( $statement ); $sth->execute() or die "$! $DBI::errstr"; } Nao estou conseguindo inserir virgula para inserir no banco.. :D Alguem q ja usou esse modulo pode me dar um help?? :D Obrigada Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/306cd1b8/attachment.html From otaviof em gmail.com Mon Sep 3 05:13:48 2007 From: otaviof em gmail.com (=?ISO-8859-1?Q?Ot=E1vio_Fernandes?=) Date: Mon, 3 Sep 2007 09:13:48 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <550469.89646.qm@web31314.mail.mud.yahoo.com> References: <550469.89646.qm@web31314.mail.mud.yahoo.com> Message-ID: <8e3843570709030513s24f29c73y6789c958180c7e8c@mail.gmail.com> On 9/3/07, Patty Silva wrote: > Ola Pessoal... > tenho um arquivo em CSV, que contem o cabeçalho contendo as variaveis e os > dados logo depois... > > estou tentando usar o Text:CSV > open CSV, $file or die $!; > my @csv_content = ; > close CSV;my $csv = Text::CSV->new(); > foreach(@csv_content){ > if($csv->parse($_)){ > @values = $csv->fields(); > $status = $csv->combine(@values); > $line = $csv->string(); > > $statement = "INSERT INTO $table($field_line) VALUES($line);"; > print $statement."\n"; > $sth = $dbh->prepare( $statement ); > $sth->execute() or die "$! $DBI::errstr"; > > } > Nao estou conseguindo inserir virgula para inserir no banco.. :D > Alguem q ja usou esse modulo pode me dar um help?? :D > > Obrigada > > > Flickr agora em português. Você clica, todo mundo vê. Saiba mais. > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > Patty, Não entendi onde vc quer inserir virgula. Seria no comando SQL ? um abraço, -- | -- | Otávio Fernandes < otaviof | gmail | com > | FreeBSD 6.2 Release && GNU/Linux User: 283.396 | (( Especial Programação )) http://geekbr.podcastbrasil.com/ | -- From ptfzs em yahoo.com.br Mon Sep 3 05:38:37 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 09:38:37 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <8e3843570709030513s24f29c73y6789c958180c7e8c@mail.gmail.com> Message-ID: <951545.53544.qm@web31306.mail.mud.yahoo.com> Entao, como na 1 linha possui as variaveis.. e nas restantes os valores.. eu recupero as variaveis porem para inserir no BAnco,tem que ter virugulas entre elas.. :D Tipow.. nao adianta o LOAD DATA INFILE.. :D preciso fazer alguns calculos com as variaveis antes de inserir. :D por isso pensei no Text:CSV :D Obrigada Otávio Fernandes escreveu: On 9/3/07, Patty Silva wrote: > Ola Pessoal... > tenho um arquivo em CSV, que contem o cabeçalho contendo as variaveis e os > dados logo depois... > > estou tentando usar o Text:CSV > open CSV, $file or die $!; > my @csv_content = ; > close CSV;my $csv = Text::CSV->new(); > foreach(@csv_content){ > if($csv->parse($_)){ > @values = $csv->fields(); > $status = $csv->combine(@values); > $line = $csv->string(); > > $statement = "INSERT INTO $table($field_line) VALUES($line);"; > print $statement."\n"; > $sth = $dbh->prepare( $statement ); > $sth->execute() or die "$! $DBI::errstr"; > > } > Nao estou conseguindo inserir virgula para inserir no banco.. :D > Alguem q ja usou esse modulo pode me dar um help?? :D > > Obrigada > > > Flickr agora em português. Você clica, todo mundo vê. Saiba mais. > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > Patty, Não entendi onde vc quer inserir virgula. Seria no comando SQL ? um abraço, -- | -- | Otávio Fernandes < otaviof | gmail | com > | FreeBSD 6.2 Release && GNU/Linux User: 283.396 | (( Especial Programação )) http://geekbr.podcastbrasil.com/ | -- _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/68db00e0/attachment.html From otaviof em gmail.com Mon Sep 3 05:54:21 2007 From: otaviof em gmail.com (=?ISO-8859-1?Q?Ot=E1vio_Fernandes?=) Date: Mon, 3 Sep 2007 09:54:21 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <951545.53544.qm@web31306.mail.mud.yahoo.com> References: <8e3843570709030513s24f29c73y6789c958180c7e8c@mail.gmail.com> <951545.53544.qm@web31306.mail.mud.yahoo.com> Message-ID: <8e3843570709030554s70fb5028y4b0863f829c837f4@mail.gmail.com> humm, entendi, faz assim, manda umas linhas de exemplo, pra eu tentar reproduzir aqui. From ptfzs em yahoo.com.br Mon Sep 3 06:04:28 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 10:04:28 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <8e3843570709030554s70fb5028y4b0863f829c837f4@mail.gmail.com> Message-ID: <754964.89656.qm@web31302.mail.mud.yahoo.com> :DNome,data,end,"DD","H1","H2","H3","H4" Name2,2005-05-20 00:00:00,MG,"01","69.6","-1","55.215","25.1231" Name2,2005-05-20 03:00:00,SP,"02","-1","1.23","1.45","-1" . . . No Caso preciso recuperar a 1 linha que sera as variaveis para inserir no banco.. Estou fazendo aqui sem usar o text:CSV.. :D posto quando terminar :D Obrigada Otávio Fernandes escreveu: humm, entendi, faz assim, manda umas linhas de exemplo, pra eu tentar reproduzir aqui. _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/b0e6112a/attachment.html From nferraz em gmail.com Mon Sep 3 06:16:58 2007 From: nferraz em gmail.com (Nelson Ferraz) Date: Mon, 3 Sep 2007 14:16:58 +0100 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <550469.89646.qm@web31314.mail.mud.yahoo.com> References: <550469.89646.qm@web31314.mail.mud.yahoo.com> Message-ID: > open CSV, $file or die $!; > my @csv_content = ; > close CSV;my $csv = Text::CSV->new(); Por que você coloca todo o arquivo na memória, de uma vez? Não seria melhor ler e processar uma linha por vez? > values = $csv->fields(); > $status = $csv->combine(@values); > $line = $csv->string(); Por que você não faz um join? my $fields = join(',', @fields); my $values = join(',', @values); > $statement = "INSERT INTO $table($field_line) VALUES($line);"; > print $statement."\n"; > $sth = $dbh->prepare( $statement ); > $sth->execute() or die "$! $DBI::errstr"; E, mais uma vez, por que você não usa strict? From otaviof em gmail.com Mon Sep 3 06:17:26 2007 From: otaviof em gmail.com (=?ISO-8859-1?Q?Ot=E1vio_Fernandes?=) Date: Mon, 3 Sep 2007 10:17:26 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <754964.89656.qm@web31302.mail.mud.yahoo.com> References: <8e3843570709030554s70fb5028y4b0863f829c837f4@mail.gmail.com> <754964.89656.qm@web31302.mail.mud.yahoo.com> Message-ID: <8e3843570709030617w4d2734dem638e9af61c4163dd@mail.gmail.com> On 9/3/07, Patty Silva wrote: > :D > Nome,data,end,"DD","H1","H2","H3","H4" > Name2,2005-05-20 00:00:00,MG,"01","69.6","-1","55.215","25.1231" > Name2,2005-05-20 03:00:00,SP,"02","-1","1.23","1.45","-1" > . > . > . > > No Caso preciso recuperar a 1 linha que sera as variaveis para inserir no > banco.. > Estou fazendo aqui sem usar o text:CSV.. :D posto quando terminar :D > > > Obrigada > > > Otávio Fernandes escreveu: > humm, entendi, faz assim, manda umas linhas de exemplo, pra eu tentar > reproduzir aqui. > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > Flickr agora em português. Você clica, todo mundo vê. Saiba mais. > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > Patty, Você já viu o Text::CSV::Simple ? Acredito que para o seu caso vai ficar bem melhor (leia-se mais fácil e simples) do q -- | -- | Otávio Fernandes < otaviof | gmail | com > | FreeBSD 6.2 Release && GNU/Linux User: 283.396 | (( Especial Programação )) http://geekbr.podcastbrasil.com/ | -- From otaviof em gmail.com Mon Sep 3 06:23:54 2007 From: otaviof em gmail.com (=?ISO-8859-1?Q?Ot=E1vio_Fernandes?=) Date: Mon, 3 Sep 2007 10:23:54 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <754964.89656.qm@web31302.mail.mud.yahoo.com> References: <8e3843570709030554s70fb5028y4b0863f829c837f4@mail.gmail.com> <754964.89656.qm@web31302.mail.mud.yahoo.com> Message-ID: <8e3843570709030623t35108d2dq95d0149780d4bf8d@mail.gmail.com> Patty, Fiz um exemplo com o Text::CSV::Simple, e funcionou, veja se este código te ajuda: $ cat csv.txt Nome,data,end,"DD","H1","H2","H3","H4" Name2,2005-05-20 00:00:00,MG,"01","69.6","-1","55.215","25.1231" Name2,2005-05-20 03:00:00,SP,"02","-1","1.23","1.45","-1" -- #!/usr/bin/perl -w use strict; use warnings; use Text::CSV::Simple; use Data::Dumper; my $csv = new Text::CSV::Simple(); $csv->field_map(qw/nome data/); my @data = $csv->read_file('csv.txt'); foreach ( @data ) { print "Debug -> ", Dumper $_, "\n"; } __END__ -- Depois dá uma olhada aqui na CPAN ( http://search.cpan.org/~tmtm/Text-CSV-Simple-1.00/lib/Text/CSV/Simple.pm) porque eu acho que neste módulo vai ter tudo o que você quer. boa sorte, -- | -- | Otávio Fernandes < otaviof | gmail | com > | FreeBSD 6.2 Release && GNU/Linux User: 283.396 | (( Especial Programação )) http://geekbr.podcastbrasil.com/ | -- From nferraz em gmail.com Mon Sep 3 06:24:11 2007 From: nferraz em gmail.com (Nelson Ferraz) Date: Mon, 3 Sep 2007 14:24:11 +0100 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <754964.89656.qm@web31302.mail.mud.yahoo.com> References: <754964.89656.qm@web31302.mail.mud.yahoo.com> Message-ID: <3B8E83E4-41DA-4973-9578-6FAC4D8375B0@gmail.com> > No Caso preciso recuperar a 1 linha que sera as variaveis para > inserir no banco.. > Estou fazendo aqui sem usar o text:CSV.. :D posto quando terminar :D > Não faça isso: você já identificou o módulo, só precisa usá-lo corretamente. Essa estratégia de "modificar o código até que ele funcione" é típica de POG. From ptfzs em yahoo.com.br Mon Sep 3 06:54:08 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 10:54:08 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <3B8E83E4-41DA-4973-9578-6FAC4D8375B0@gmail.com> Message-ID: <230444.38258.qm@web31307.mail.mud.yahoo.com> ok :D uma pergunta :-) no caso, o cabecalho estao assim: ID.Nome,ID.END,ID.CASA (ex) eu lendo linha por linha.. $linha=; $linha=~ s/^.?N\/A,//; # Elimina N/A @fields= split(/,/,$linha); Para eliminar tudo que esta antes do . eu fiz: foreach $campo (@fields) { $campo=~ s/\.(\w*)//; push(@variaveis,$1); } tem como eu eliminar sem usar o foreach :D Obrigada Nelson Ferraz escreveu: > No Caso preciso recuperar a 1 linha que sera as variaveis para > inserir no banco.. > Estou fazendo aqui sem usar o text:CSV.. :D posto quando terminar :D > Não faça isso: você já identificou o módulo, só precisa usá-lo corretamente. Essa estratégia de "modificar o código até que ele funcione" é típica de POG. _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/faf44b3b/attachment-0001.html From nferraz em gmail.com Mon Sep 3 07:24:04 2007 From: nferraz em gmail.com (Nelson Ferraz) Date: Mon, 3 Sep 2007 15:24:04 +0100 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <230444.38258.qm@web31307.mail.mud.yahoo.com> References: <230444.38258.qm@web31307.mail.mud.yahoo.com> Message-ID: <74B9FDE7-A772-4465-9059-4E0161F74F42@gmail.com> Em Sep 3, 2007, às 2:54 PM, Patty Silva escreveu: > Para eliminar tudo que esta antes do . eu fiz: > foreach $campo (@fields) > { > $campo=~ s/\.(\w*)//; > push(@variaveis,$1); > > } > > tem como eu eliminar sem usar o foreach :D Tem. Em geral, quando você quiser transformar uma array, você pode (deve) usar "map". my @new_array = map { do something with $_ } @old_array; Por exemplo: my @clean_fields = map { /\.(.+)$/ } @fields; Esta é apenas uma forma, existem inúmeras maneiras diferentes. Mas o seu código continuará errado enquanto você não colocar "strict" e "warnings" no começo do seu programa. (E eu me vejo obrigado a repetir sempre a mesma cantilena, para que esse mau exemplo não seja repetido por outras pessoas -- estas sim, eu espero, capazes de aprender.) From ptfzs em yahoo.com.br Mon Sep 3 07:28:11 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 11:28:11 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <74B9FDE7-A772-4465-9059-4E0161F74F42@gmail.com> Message-ID: <900896.97896.qm@web31304.mail.mud.yahoo.com> Obrigada :D Esse programa tem strict e warnings :D eh que coloquei um pedaço somente Obrigada Nelson Ferraz escreveu: Em Sep 3, 2007, às 2:54 PM, Patty Silva escreveu: > Para eliminar tudo que esta antes do . eu fiz: > foreach $campo (@fields) > { > $campo=~ s/\.(\w*)//; > push(@variaveis,$1); > > } > > tem como eu eliminar sem usar o foreach :D Tem. Em geral, quando você quiser transformar uma array, você pode (deve) usar "map". my @new_array = map { do something with $_ } @old_array; Por exemplo: my @clean_fields = map { /\.(.+)$/ } @fields; Esta é apenas uma forma, existem inúmeras maneiras diferentes. Mas o seu código continuará errado enquanto você não colocar "strict" e "warnings" no começo do seu programa. (E eu me vejo obrigado a repetir sempre a mesma cantilena, para que esse mau exemplo não seja repetido por outras pessoas -- estas sim, eu espero, capazes de aprender.) _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/be9c7206/attachment.html From igor.sutton em yahoo.co.uk Mon Sep 3 07:36:11 2007 From: igor.sutton em yahoo.co.uk (Igor Lopes) Date: Mon, 3 Sep 2007 15:36:11 +0100 (BST) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <900896.97896.qm@web31304.mail.mud.yahoo.com> Message-ID: <869471.72320.qm@web23012.mail.ird.yahoo.com> Tem como você postar o programa inteiro? --- Patty Silva wrote: > Obrigada :D > Esse programa tem strict e warnings :D eh que > coloquei um pedaço somente > > Obrigada > > Nelson Ferraz escreveu: Em Sep > 3, 2007, às 2:54 PM, Patty Silva escreveu: > > > Para eliminar tudo que esta antes do . eu fiz: > > foreach $campo (@fields) > > { > > $campo=~ s/\.(\w*)//; > > push(@variaveis,$1); > > > > } > > > > tem como eu eliminar sem usar o foreach :D > > Tem. > > Em geral, quando você quiser transformar uma array, > você pode (deve) > usar "map". > > my @new_array = map { do something with $_ } > @old_array; > > Por exemplo: > > my @clean_fields = map { /\.(.+)$/ } @fields; > > Esta é apenas uma forma, existem inúmeras maneiras > diferentes. > > Mas o seu código continuará errado enquanto você não > colocar "strict" > e "warnings" no começo do seu programa. > > (E eu me vejo obrigado a repetir sempre a mesma > cantilena, para que > esse mau exemplo não seja repetido por outras > pessoas -- estas sim, > eu espero, capazes de aprender.) > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > Flickr agora em português. Você clica, todo > mundo vê. Saiba mais.> _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm ___________________________________________________________ Yahoo! Answers - Got a question? Someone out there knows the answer. Try it now. http://uk.answers.yahoo.com/ From nferraz em gmail.com Mon Sep 3 07:45:49 2007 From: nferraz em gmail.com (Nelson Ferraz) Date: Mon, 3 Sep 2007 15:45:49 +0100 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <900896.97896.qm@web31304.mail.mud.yahoo.com> References: <900896.97896.qm@web31304.mail.mud.yahoo.com> Message-ID: Em Sep 3, 2007, às 3:28 PM, Patty Silva escreveu: > Esse programa tem strict e warnings :D eh que coloquei um pedaço > somente Então você precisa prestar atenção a alguns detalhes: Ao invés de: > foreach $campo (@fields) > { > $campo=~ s/\.(\w*)//; > push(@variaveis,$1); > > } Procure enviar algo que MOSTRE que você usou strict: my @variaveis = (); foreach my $campo ( @fields ) { $campo =~ s/\.(\w*)//; push @variaveis, $1; } Lembre-se de declarar as variáveis no menor escopo possível -- veja, por exemplo, que eu declarei @variaveis logo antes do loop onde ela será usada, e $campo dentro do foreach. Quando você fizer isso eu *prometo* que vou parar de chamar sua atenção. :-) From ptfzs em yahoo.com.br Mon Sep 3 08:20:49 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 12:20:49 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: Message-ID: <181360.469.qm@web31308.mail.mud.yahoo.com> Aproeitando q vc tocou nesse assunto :) vou tirar algumas duvidas em definicoes de variaveis.. :D qual a melhor pratica? definir todas as variaveis antes? my $var1; my $var2; sem atribuicoes? ou como: my $var1 =""; my $var2 =""; e outra coisa.. se eu colocar dentro de uma subrotina a variavel my ($var1,var2)=@_; e local ($var1,var2)=@_; eu preciso declara-las antes? :D Obrigada Nelson Ferraz escreveu: Em Sep 3, 2007, às 3:28 PM, Patty Silva escreveu: > Esse programa tem strict e warnings :D eh que coloquei um pedaço > somente Então você precisa prestar atenção a alguns detalhes: Ao invés de: > foreach $campo (@fields) > { > $campo=~ s/\.(\w*)//; > push(@variaveis,$1); > > } Procure enviar algo que MOSTRE que você usou strict: my @variaveis = (); foreach my $campo ( @fields ) { $campo =~ s/\.(\w*)//; push @variaveis, $1; } Lembre-se de declarar as variáveis no menor escopo possível -- veja, por exemplo, que eu declarei @variaveis logo antes do loop onde ela será usada, e $campo dentro do foreach. Quando você fizer isso eu *prometo* que vou parar de chamar sua atenção. :-) _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/e65b4c6b/attachment.html From edencardim em gmail.com Mon Sep 3 08:25:08 2007 From: edencardim em gmail.com (eden) Date: Mon, 3 Sep 2007 12:25:08 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <181360.469.qm@web31308.mail.mud.yahoo.com> References: <181360.469.qm@web31308.mail.mud.yahoo.com> Message-ID: <3de55ead0709030825i5a909afbjd6c1133854a109e3@mail.gmail.com> On 9/3/07, Patty Silva wrote: > Aproeitando q vc tocou nesse assunto :) > vou tirar algumas duvidas em definicoes de variaveis.. :D > > qual a melhor pratica? definir todas as variaveis antes? > my $var1; > my $var2; > sem atribuicoes? ou como: > my $var1 =""; > my $var2 =""; Declare suas variáveis no menor escopo possível, geralmente isso é feito "perto" do lugar onde você vai usá-las, de preferência já inicializando. Declarar variáveis sem inicializar ou atribuindo strings vazias geralmente é um sinal de que a variável está declarada no lugar errado. > e outra coisa.. > > se eu colocar dentro de uma subrotina > a variavel > my ($var1,var2)=@_; > e > local ($var1,var2)=@_; > > eu preciso declara-las antes? :D Experimenta pra ver o que acontece... -- edenc.vox.com From ptfzs em yahoo.com.br Mon Sep 3 08:43:50 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Mon, 3 Sep 2007 12:43:50 -0300 (ART) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <3de55ead0709030825i5a909afbjd6c1133854a109e3@mail.gmail.com> Message-ID: <612610.61976.qm@web31311.mail.mud.yahoo.com> oks :D pq esta dando esse erro: Use of uninitialized value in numeric ne (!=) at teste.pl line 749, line 801 my $missing=-8888; if (($var1 != $missing) && ($var2 != $missing) && ( $var1 ne "" ) && ($var2 ne "") ) ja tentei mudar != para ne e nada :D pq desse erro? pelo q entendi .. estou usando != ao invez de ne.. mas se colocar ne nao funciona tb :( eden escreveu: On 9/3/07, Patty Silva wrote: > Aproeitando q vc tocou nesse assunto :) > vou tirar algumas duvidas em definicoes de variaveis.. :D > > qual a melhor pratica? definir todas as variaveis antes? > my $var1; > my $var2; > sem atribuicoes? ou como: > my $var1 =""; > my $var2 =""; Declare suas variáveis no menor escopo possível, geralmente isso é feito "perto" do lugar onde você vai usá-las, de preferência já inicializando. Declarar variáveis sem inicializar ou atribuindo strings vazias geralmente é um sinal de que a variável está declarada no lugar errado. > e outra coisa.. > > se eu colocar dentro de uma subrotina > a variavel > my ($var1,var2)=@_; > e > local ($var1,var2)=@_; > > eu preciso declara-las antes? :D Experimenta pra ver o que acontece... -- edenc.vox.com _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/34adff57/attachment.html From igor.sutton em yahoo.co.uk Mon Sep 3 08:48:14 2007 From: igor.sutton em yahoo.co.uk (Igor Lopes) Date: Mon, 3 Sep 2007 16:48:14 +0100 (BST) Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <612610.61976.qm@web31311.mail.mud.yahoo.com> Message-ID: <113779.7243.qm@web23012.mail.ird.yahoo.com> --- Patty Silva wrote: > oks :D > > pq esta dando esse erro: > Use of uninitialized value in numeric ne (!=) at > teste.pl line 749, line 801 > > my $missing=-8888; > > if (($var1 != $missing) && ($var2 != $missing) && ( > $var1 ne "" ) && ($var2 ne "") ) > > > > ja tentei mudar != para ne e nada :D > > pq desse erro? pelo q entendi .. estou usando != ao > invez de ne.. mas se colocar ne nao funciona tb :( O quê deve estar faltando é $var1 ou $var2... if ($var1 && $var1 != $missing) { ... Lembre-se também que 'ne' é utilizado para strings e '!=' utilizado para números. ___________________________________________________________ Want ideas for reducing your carbon footprint? Visit Yahoo! For Good http://uk.promotions.yahoo.com/forgood/environment.html From nferraz em gmail.com Mon Sep 3 08:58:01 2007 From: nferraz em gmail.com (Nelson Ferraz) Date: Mon, 3 Sep 2007 16:58:01 +0100 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <612610.61976.qm@web31311.mail.mud.yahoo.com> References: <612610.61976.qm@web31311.mail.mud.yahoo.com> Message-ID: > pq esta dando esse erro: > Use of uninitialized value in numeric ne (!=) at teste.pl line 749, > line 801 Isso não é um erro, é um alerta. Em resumo, ele diz exatamente o que está escrito: uso de um valor não inicializado numa comparação numérica. > ja tentei mudar != para ne e nada :D Se você não entendeu a mensagem, não mude o código aleatoriamente na esperança que, de uma hora para outra, ele volte a funcionar. Inclua a linha "use diagnostics", logo depois do "use warnings", para obter uma explicação mais completa sobre o alerta. Entenda o problema antes de buscar uma solução. From flaviobei em gmail.com Mon Sep 3 12:05:17 2007 From: flaviobei em gmail.com (Flavio Bei) Date: Mon, 3 Sep 2007 16:05:17 -0300 Subject: [Cascavel-pm] =?utf-8?q?saber_se_o_arquivo_est=C3=A1_aberto?= In-Reply-To: <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> References: <557376b60708301602r239f2aabu433666b8e07f9cef@mail.gmail.com> <46D75D94.7090502@terra.com.br> <557376b60708310718v4c5eb7a0w91be51d1dda959ac@mail.gmail.com> <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> Message-ID: <557376b60709031205l46be2c7fjd3222fd04910c7a9@mail.gmail.com> ae marco e solli, valeu pelas dicas... montei um esquema aqui com o fuser, e fico batendo no arquivo, vendo se ele ta terminado, quando o ftp termina, o arquivo fica liberado e eu renomeio ele... com isso, outro programa busca no diretório por arquivos com a nova extensão... dai pra frente ta sussa... agora acho que vai funcionar.. assim que rolar 100% eu posto a solução aqui... caras, to curtindo o perl, realmente tem mais de um jeito pra resolver um problema.... abraços Em 02/09/07, Marco A P D'Andrade escreveu: > Sei que estou um tanto atrasado na questão, mas seguem minhas considerações: > > Vc poderia ter controle no tempo de execução do robo ? Algo do genero > ao término fazer um rotate? (isto é solicitavel a quem controla?) > > Estes diretórios, são acessados somente por este robo e o seu script, > ou por outros processos ? > - Se for somente os 2, vc poderia utilizar um "fuser", para ver se > algum processo está lendo o arquivo diretorio ... para algo mais > elaborado, vc poderia até ver o código do fuser (nao aconselho, mas > viajando demais ;) ) > ** Nem tanto... ao termino fui buscar em nosso "dicionario" :) > http://search.cpan.org/~jstowe/Linux-Fuser-1.4/lib/Linux/Fuser.pm > > > Os arquivos alterados são sempre os mesmos ? Ou existe algum mecanismo > para renomear os arquivos anteriores (do genero date yyyymmddhhss, pid > ou .old) ? > - Se houver, melhor, se não, poderia pedir ? > > Vc sabe de quanto em quanto tempo os arquivos são reescritos ? Quanto > tempo leva ? > - Outra abordagem poderia ser o "stat", verificando a ultima > alteração, e se for acima do esperado pelo processo, vc poderia > iniciar o uso. - eventualmente utilizando também o "fuser". > > Vc comentou sobre "trailer", indicado no final... > - Esta seria uma abordagem que lhe garantiria consistencia, se não > estiver marcado como concluido, vc aguarda ;) > > > Agora uma coisa que eu utilizo como pratica preservacionista em meu trabalho... > > Perl faz mágica, mas eu não. Me digam como controlar a situação (e > assumam o risco), e depois não venha me dizer que "Perl não é bom para > este problema", pois se não for bem elaborada a solução, vc com > certeza ouvirá isto ;) > > > PS: Gastarei mais um paragrafo para pedir desculpas pelo comprimento > de meu email eheheh > > > Sds, > Marco Antonio > > Em 31/08/07, Solli Honorio escreveu: > > Cara, eu acho que você pode utilizar também o Linux::Inotify2. Este link > > (http://peter.makholm.net/2007/08/21/on-handling-email/ ) > > possue um exemplo interessante. > > > > Abaixo tem um código meu mais simples .... > > > > > > #!/usr/bin/perl > > use Linux::Inotify2; > > > > my $inotify = new Linux::Inotify2 > > or die "Unable to create new inotify object: $!"; > > > > $inotify->watch('/tmp/t.txt', IN_ALL_EVENTS) > > or die "Watch creation failed: $!" ; # Take a look at the directory for > > file changes > > > > while () { # Loop forever > > my @events = $inotify->read; > > $e = shift(@events); > > my $name = $e->fullname; > > print "$name was accessed\n" if $e->IN_ACCESS; > > print "$name is no longer mounted\n" if $e->IN_UNMOUNT; > > print "$name is gone\n" if $e->IN_IGNORED; > > print "$name is close from write\n" if $e->IN_CLOSE_WRITE; > > print "$name is opened\n" if $e->IN_OPEN; > > print "events for $name have been lost\n" if $e->IN_Q_OVERFLOW; > > } > > > > > > On 8/31/07, Flavio Bei wrote: > > > opa Ednardo, blz? > > > eu não posso renomear ele antes de terminar, pois o processo pra > > > renomear vai ser executado junto com uma mudança dop local do arquivo, > > > para ele ser processado por outro programa.. > > > sei que parece uma zona, mas é um esquema que já funcionava aqui.,... > > > mas era manual.. > > > > > > e hoje apareceu mais uma novidade, esse arquivo vai estar em uso por > > > um ftp, então preciso esperar o ftp acabar pra mecher nele... > > > > > > to tentando o fuser, mas não ta resultando nada útil... > > > > > > abraços > > > > > > Em 30/08/07, Luciano Giordani Bassani< lgbassani em terra.com.br> escreveu: > > > > Eu não sabia deste pc -C , mas aqui funcionou. > > > > Em todo caso, se tu quiser mesmo utilizar o esquema com o grep, eu > > recomendo > > > > tu mudar para algo assim: > > > > $teste = (`ps xa | grep $retorno\$ | grep -v grep`); > > > > > > > > Isso é para evitar que o próprio comando "ps xa | grep" gere um > > > > "falso-positivo". > > > > > > > > > > > > SDS, > > > > > > > > Luciano > > > > > > > > > > > > > > > > Fernando Oliveira escreveu: > > > > pq, ao invez de usar 2 comando, não usa só o ps -C nome_prog??? > > > > > > > > Em 30/08/07, Flavio Bei < flaviobei em gmail.com > escreveu: > > > > > consegui uma solução assim, deu certo, mas to com dúvidas... será que > > > > > o resultado será sempre preciso? > > > > > > > > > > o código ficou + - assim > > > > > > > > > > ########################################## > > > > > #!/usr/bin/perl > > > > > # sistema que vai buscar em um diretório um determinado arquivo > > > > > # caso o arquivo não esteja em uso por nenhum processo ele é renomeado > > > > > ########################################## > > > > > > > > > > use strict; > > > > > my $caminho = "/home/user/pasta/"; > > > > > my $extensao = "*.txt"; > > > > > my $completo = $caminho.$extensao; > > > > > my @encontrados; > > > > > my $retorno; > > > > > my $lista; > > > > > my $teste; > > > > > > > > > > $lista = (`ls -1 $completo`); > > > > > > > > > > if ($lista ne '') > > > > > { > > > > > @encontrados = split('\n', $lista); > > > > > } > > > > > > > > > > foreach $retorno (@encontrados) { > > > > > > > > > > $teste = (`ps xa |grep $retorno\$`); > > > > > > > > > > if ($teste eq '') > > > > > { > > > > > #processa o arquivo pois ele não está em uso por nenhum > > processo > > > > > print ("=======>>> Altera o arquivo $retorno pois não está em > > > > uso\n"); > > > > > `mv $retorno $retorno.new`; > > > > > } > > > > > else > > > > > { > > > > > #não processa o arquivo pois ele está em uso por algum > > processo > > > > > print ("========>!!!! Não altera o arquivo $retorno\n"); > > > > > } > > > > > } > > > > > ############################################## > > > > > deu certo, e está rodando de boa, dai joguei na cron e ele fica > > > > > verificando de tempos em tempos... mas não sei se é a sintaxe do ps, > > > > > que tem hora que ele não mostra o processo sendo executado por outro > > > > > usuário, tem hora que mostra normal... > > > > > _______________________________________________ > > > > > Cascavel-pm mailing list > > > > > Cascavel-pm em pm.org > > > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > > > > > > > > > > > > > -- > > > > []'s Fernando ________________________________ > > > > > > > _______________________________________________ > > > Cascavel-pm > > > > mailing > > > > list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > _______________________________________________ > > > > Cascavel-pm mailing list > > > > Cascavel-pm em pm.org > > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > > > > > -- > > > -- > > > Flávio Bei > > > Webdesigner > > > (11) 8964 5315 > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > > > -- > > "o animal satisfeito dorme". - Guimarães Rosa > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- -- Flávio Bei Webdesigner (11) 8964 5315 From flaviobei em gmail.com Mon Sep 3 12:09:08 2007 From: flaviobei em gmail.com (Flavio Bei) Date: Mon, 3 Sep 2007 16:09:08 -0300 Subject: [Cascavel-pm] Download de arquivo In-Reply-To: <83d8367f0709021725oe7e9d82l1dc073cb387fc6e@mail.gmail.com> References: <83d8367f0709021500p7a6b4e2bn8fd1cd38a402a665@mail.gmail.com> <42dcdd750709021707o287e64afxe5b04d4e3df8ccd8@mail.gmail.com> <83d8367f0709021725oe7e9d82l1dc073cb387fc6e@mail.gmail.com> Message-ID: <557376b60709031209n14f85a26u7de1a6a52f7bf8ff@mail.gmail.com> pra testar JS no firefox, usa o firebug, é o melhor.... https://addons.mozilla.org/en-US/firefox/addon/1843 abraços -- -- Flávio Bei Webdesigner (11) 8964 5315 From shonorio em gmail.com Mon Sep 3 12:15:09 2007 From: shonorio em gmail.com (Solli Honorio) Date: Mon, 3 Sep 2007 16:15:09 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?saber_se_o_arquivo_est=E1_aberto?= In-Reply-To: <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> References: <557376b60708301602r239f2aabu433666b8e07f9cef@mail.gmail.com> <46D75D94.7090502@terra.com.br> <557376b60708310718v4c5eb7a0w91be51d1dda959ac@mail.gmail.com> <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> Message-ID: <12d1f4ee0709031215v7e6f79c1sb65ef1c347bfdd72@mail.gmail.com> On 9/2/07, Marco A P D'Andrade wrote: > > Sei que estou um tanto atrasado na questão, mas seguem minhas > considerações: > > Vc poderia ter controle no tempo de execução do robo ? Algo do genero > ao término fazer um rotate? (isto é solicitavel a quem controla?) > > Estes diretórios, são acessados somente por este robo e o seu script, > ou por outros processos ? > - Se for somente os 2, vc poderia utilizar um "fuser", para ver se > algum processo está lendo o arquivo diretorio ... para algo mais > elaborado, vc poderia até ver o código do fuser (nao aconselho, mas > viajando demais ;) ) > ** Nem tanto... ao termino fui buscar em nosso "dicionario" :) > http://search.cpan.org/~jstowe/Linux-Fuser-1.4/lib/Linux/Fuser.pm Cara eu estava justamente procurando isto para responder ao email, mas não procurei pelo óbvio (fuser) e aí encontrei outras soluções. Mas também acredito que o FUSER é muito melhor para este caso... -- "o animal satisfeito dorme". - Guimarães Rosa -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070903/01c6e038/attachment.html From luismottacampos em yahoo.co.uk Mon Sep 3 09:55:35 2007 From: luismottacampos em yahoo.co.uk (Luis Motta Campos) Date: Mon, 3 Sep 2007 18:55:35 +0200 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <3B8E83E4-41DA-4973-9578-6FAC4D8375B0@gmail.com> References: <754964.89656.qm@web31302.mail.mud.yahoo.com> <3B8E83E4-41DA-4973-9578-6FAC4D8375B0@gmail.com> Message-ID: <200709031855.35548.luismottacampos@yahoo.co.uk> On Monday 03 September 2007 15:24, Nelson Ferraz wrote: > > No Caso preciso recuperar a 1 linha que sera as variaveis para > > inserir no banco.. > > Estou fazendo aqui sem usar o text:CSV.. :D posto quando terminar :D > > Não faça isso: você já identificou o módulo, só precisa usá-lo > corretamente. > > Essa estratégia de "modificar o código até que ele funcione" é típica > de POG. Esta, nem eu sei o que é, Nélson. Você pode por favor expandir o acrônimo? Putamplexos! -- Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer, Perl fanatic evangelist, and amateur {cook, photographer} From oberdan.luiz em gmail.com Mon Sep 3 14:28:16 2007 From: oberdan.luiz em gmail.com (Oberdan Luiz May) Date: Mon, 3 Sep 2007 18:28:16 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <200709031855.35548.luismottacampos@yahoo.co.uk> References: <754964.89656.qm@web31302.mail.mud.yahoo.com> <3B8E83E4-41DA-4973-9578-6FAC4D8375B0@gmail.com> <200709031855.35548.luismottacampos@yahoo.co.uk> Message-ID: Acho que é isso aqui: http://desciclo.pedia.ws/wiki/POG Uma boa leitura, diga-se de passagem :-) []'s On 9/3/07, Luis Motta Campos wrote: > On Monday 03 September 2007 15:24, Nelson Ferraz wrote: > > > No Caso preciso recuperar a 1 linha que sera as variaveis para > > > inserir no banco.. > > > Estou fazendo aqui sem usar o text:CSV.. :D posto quando terminar :D > > > > Não faça isso: você já identificou o módulo, só precisa usá-lo > > corretamente. > > > > Essa estratégia de "modificar o código até que ele funcione" é típica > > de POG. > > Esta, nem eu sei o que é, Nélson. > Você pode por favor expandir o acrônimo? > > Putamplexos! > -- > Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer, > Perl fanatic evangelist, and amateur {cook, photographer} > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From edencardim em gmail.com Mon Sep 3 14:31:06 2007 From: edencardim em gmail.com (eden) Date: Mon, 3 Sep 2007 18:31:06 -0300 Subject: [Cascavel-pm] Duvida Text:CSV In-Reply-To: <200709031855.35548.luismottacampos@yahoo.co.uk> References: <754964.89656.qm@web31302.mail.mud.yahoo.com> <3B8E83E4-41DA-4973-9578-6FAC4D8375B0@gmail.com> <200709031855.35548.luismottacampos@yahoo.co.uk> Message-ID: <3de55ead0709031431y2a8334c1u5c00b9ed6b8f1ee8@mail.gmail.com> On 9/3/07, Luis Motta Campos wrote: > Esta, nem eu sei o que é, Nélson. > Você pode por favor expandir o acrônimo? É sua velha conhecida, só que com outro nome. ;) -- edenc.vox.com From mdacwb em gmail.com Mon Sep 3 20:48:10 2007 From: mdacwb em gmail.com (Marco A P D'Andrade) Date: Tue, 4 Sep 2007 00:48:10 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?saber_se_o_arquivo_est=E1_aberto?= In-Reply-To: <12d1f4ee0709031215v7e6f79c1sb65ef1c347bfdd72@mail.gmail.com> References: <557376b60708301602r239f2aabu433666b8e07f9cef@mail.gmail.com> <46D75D94.7090502@terra.com.br> <557376b60708310718v4c5eb7a0w91be51d1dda959ac@mail.gmail.com> <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> <12d1f4ee0709031215v7e6f79c1sb65ef1c347bfdd72@mail.gmail.com> Message-ID: <42dcdd750709032048x13009710x29d082abc88431a9@mail.gmail.com> É bom saber que uma das bolas chutadas atingiu o gol :) Em 03/09/07, Solli Honorio escreveu: > > On 9/2/07, Marco A P D'Andrade wrote: > > Sei que estou um tanto atrasado na questão, mas seguem minhas > considerações: > > > > Vc poderia ter controle no tempo de execução do robo ? Algo do genero > > ao término fazer um rotate? (isto é solicitavel a quem controla?) > > > > Estes diretórios, são acessados somente por este robo e o seu script, > > ou por outros processos ? > > - Se for somente os 2, vc poderia utilizar um "fuser", para ver se > > algum processo está lendo o arquivo diretorio ... para algo mais > > elaborado, vc poderia até ver o código do fuser (nao aconselho, mas > > viajando demais ;) ) > > ** Nem tanto... ao termino fui buscar em nosso "dicionario" :) > > > http://search.cpan.org/~jstowe/Linux-Fuser-1.4/lib/Linux/Fuser.pm > > Cara eu estava justamente procurando isto para responder ao email, mas não > procurei pelo óbvio (fuser) e aí encontrei outras soluções. Mas também > acredito que o FUSER é muito melhor para este caso... > > -- > > "o animal satisfeito dorme". - Guimarães Rosa > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From wilson em bhmoveis.com Tue Sep 4 05:52:15 2007 From: wilson em bhmoveis.com (wilsonalencar) Date: Tue, 4 Sep 2007 09:52:15 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Acentua=E7=E3o?= Message-ID: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> Olá amigos. Sou novo na lista, e também em programação em Perl. Já consegui escrever alguns programinhas mas estou com problemas na apresentação de caracteres especiais como ã,ô,é etc.. Eles não aparecem da forma correta. Como faço para que o perl interprete o caracter corretamente. Estou salvando o arquivo .pl como ASCII utf8 without boom. Sei que deve ser uma coisa simples mas realmente não consigo descobrir como faze-lo. Só quero que por exemplo print “avião”, apareça avião no cmd. A propósito estou utilizando o Active Perl 5.8.8 com windows XP. Desde já obrigado e espero no futuro ser útil a lista. Abraços Wilson No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.485 / Virus Database: 269.13.5/988 - Release Date: 4/9/2007 09:14 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/19291ac3/attachment.html From flaviobei em gmail.com Tue Sep 4 06:29:37 2007 From: flaviobei em gmail.com (Flavio Bei) Date: Tue, 4 Sep 2007 10:29:37 -0300 Subject: [Cascavel-pm] =?utf-8?q?saber_se_o_arquivo_est=C3=A1_aberto?= In-Reply-To: <42dcdd750709032048x13009710x29d082abc88431a9@mail.gmail.com> References: <557376b60708301602r239f2aabu433666b8e07f9cef@mail.gmail.com> <46D75D94.7090502@terra.com.br> <557376b60708310718v4c5eb7a0w91be51d1dda959ac@mail.gmail.com> <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> <12d1f4ee0709031215v7e6f79c1sb65ef1c347bfdd72@mail.gmail.com> <42dcdd750709032048x13009710x29d082abc88431a9@mail.gmail.com> Message-ID: <557376b60709040629w1e88cd34p3f867bec136386f8@mail.gmail.com> outro problema, sei que deve ser besteira.. mas não achei a solução... alguém tem idéia do que pode ser? eu estava testando o programa rodando na mesma pasta dos arquivos, agora eu to tentando jogar o sistema em uma pasta qualquer e chamar os arquivos, até ai blz, mas não ta funcionando,... não sei o que pode ser, mas ele não acha o caminho.... o código é esse: #=============================================== use strict; use warnings; my $caminho = '/home/flavio/upload/'; opendir( DIR, $caminho ) || die "Não pude abrir o diretorio $!\n"; my @files = readdir( DIR ); closedir( DIR ); foreach( @files ){ my $f = $_; if (lc(substr($f, -3,3)) eq "txt"){ my $o = `/sbin/fuser $f`; if( $o eq '' ){ $c = system ("mv -f $f /home/flavio/uso/$f.ok"); if( $c ){ die 'ERROR mv: '.$c."\n"; } } } } #===================================================== não funciona.. ele simplesmente não acha a pasta e não meche no arquivo.. abraços -- -- Flávio Bei Webdesigner (11) 8964 5315 From nferraz em gmail.com Tue Sep 4 06:45:15 2007 From: nferraz em gmail.com (Nelson Ferraz) Date: Tue, 4 Sep 2007 14:45:15 +0100 Subject: [Cascavel-pm] =?iso-8859-1?q?saber_se_o_arquivo_est=E1_aberto?= In-Reply-To: <557376b60709040629w1e88cd34p3f867bec136386f8@mail.gmail.com> References: <557376b60708301602r239f2aabu433666b8e07f9cef@mail.gmail.com> <46D75D94.7090502@terra.com.br> <557376b60708310718v4c5eb7a0w91be51d1dda959ac@mail.gmail.com> <12d1f4ee0708311927v4cadaad0l4fa4096958fc76b9@mail.gmail.com> <42dcdd750709020953u3aca1aeep70885b216ccb3517@mail.gmail.com> <12d1f4ee0709031215v7e6f79c1sb65ef1c347bfdd72@mail.gmail.com> <42dcdd750709032048x13009710x29d082abc88431a9@mail.gmail.com> <557376b60709040629w1e88cd34p3f867bec136386f8@mail.gmail.com> Message-ID: Em Sep 4, 2007, às 2:29 PM, Flavio Bei escreveu: > outro problema, sei que deve ser besteira.. mas não achei a solução... > alguém tem idéia do que pode ser? > > eu estava testando o programa rodando na mesma pasta dos arquivos, > agora eu to tentando jogar o sistema em uma pasta qualquer e chamar os > arquivos, até ai blz, mas não ta funcionando,... não sei o que pode > ser, mas ele não acha o caminho.... > > o código é esse: > > #=============================================== > use strict; > use warnings; > my $caminho = '/home/flavio/upload/'; > > opendir( DIR, $caminho ) || die "Não pude abrir o diretorio $!\n"; > my @files = readdir( DIR ); > closedir( DIR ); > > foreach( @files ){ > > my $f = $_; > if (lc(substr($f, -3,3)) eq "txt"){ > my $o = `/sbin/fuser $f`; Será que não faltou o caminho antes do nome do arquivo? foreach my $filename ( @files ) { next if $filename !~ /\.txt$/i; # poderia ter feito um grep antes, ou usado um glob my $o = `/sbin/fuser $caminho/$filename`; (A propósito... procure escolher nomes de variáveis melhores, como "$filename" ao invés de "$f", e... sei lá o que você estava pensando, ao invés de "$o".) []s Nelson From flaviobei em gmail.com Tue Sep 4 06:48:55 2007 From: flaviobei em gmail.com (Flavio Bei) Date: Tue, 4 Sep 2007 10:48:55 -0300 Subject: [Cascavel-pm] =?utf-8?b?QWNlbnR1YcOnw6Nv?= In-Reply-To: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> References: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> Message-ID: <557376b60709040648u1cb21c6pfc0ae0ad5e1764af@mail.gmail.com> opa wilson, blz? achei esse link, ta em espanhol, mas deve dar um help... unicode, utf, coisas do tipo, abraço http://www.uco.es/ccc/x500/Charset.html -- -- Flávio Bei Webdesigner (11) 8964 5315 From wilson em bhmoveis.com Tue Sep 4 07:27:18 2007 From: wilson em bhmoveis.com (wilsonalencar) Date: Tue, 4 Sep 2007 11:27:18 -0300 Subject: [Cascavel-pm] =?utf-8?b?UkVTOiAgQWNlbnR1YcOnw6Nv?= In-Reply-To: <557376b60709040648u1cb21c6pfc0ae0ad5e1764af@mail.gmail.com> References: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> <557376b60709040648u1cb21c6pfc0ae0ad5e1764af@mail.gmail.com> Message-ID: <00d101c7eeff$b37b9380$a600a8c0@NOTEDELL> Oi Flávio, obrigado pela ajuda. Muito bom o texto porém devo estar fazendo alguma coisa errada. Segui o exemplo do texto e continua dando errado.O código que usei foi: #!/usr/local/bin/perl use Unicode::String qw(latin1); $u = latin1( "á"); print $u, "\n"; O que retorna é ?â?í. Estou meio perdido, acho que o fato de usar activeperl pode ser -----Mensagem original----- De: cascavel-pm-bounces+wilson=bhmoveis.com em pm.org [mailto:cascavel-pm-bounces+wilson=bhmoveis.com em pm.org] Em nome de Flavio Bei Enviada em: terça-feira, 4 de setembro de 2007 10:49 Para: Cascavel Perl Mongers Assunto: Re: [Cascavel-pm] Acentuação opa wilson, blz? achei esse link, ta em espanhol, mas deve dar um help... unicode, utf, coisas do tipo, abraço http://www.uco.es/ccc/x500/Charset.html -- -- Flávio Bei Webdesigner (11) 8964 5315 _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 03/09/2007 / Versão: 5.1.00/5111 Proteja o seu e-mail Terra: http://mail.terra.com.br/ No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.485 / Virus Database: 269.13.5/988 - Release Date: 4/9/2007 09:14 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.485 / Virus Database: 269.13.5/988 - Release Date: 4/9/2007 09:14 From flaviobei em gmail.com Tue Sep 4 07:44:51 2007 From: flaviobei em gmail.com (Flavio Bei) Date: Tue, 4 Sep 2007 11:44:51 -0300 Subject: [Cascavel-pm] =?utf-8?b?UkVTOiBBY2VudHVhw6fDo28=?= In-Reply-To: <00d101c7eeff$b37b9380$a600a8c0@NOTEDELL> References: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> <557376b60709040648u1cb21c6pfc0ae0ad5e1764af@mail.gmail.com> <00d101c7eeff$b37b9380$a600a8c0@NOTEDELL> Message-ID: <557376b60709040744n7ac4e4batbb4bafe1a6543dd9@mail.gmail.com> testei aqui no linux, roda direto sem configurar unicode, pq meu kurumin ta como latin-1... to fuçando pra tentar achar como é o endode do dos.. abraço Em 04/09/07, wilsonalencar escreveu: > Oi Flávio, obrigado pela ajuda. Muito bom o texto porém devo estar fazendo alguma coisa errada. Segui o exemplo do texto e continua dando errado.O código que usei foi: > > #!/usr/local/bin/perl > use Unicode::String qw(latin1); > $u = latin1( "á"); > print $u, "\n"; > > O que retorna é ?â?í. > > Estou meio perdido, acho que o fato de usar activeperl pode ser > > > -----Mensagem original----- > De: cascavel-pm-bounces+wilson=bhmoveis.com em pm.org [mailto:cascavel-pm-bounces+wilson=bhmoveis.com em pm.org] Em nome de Flavio Bei > Enviada em: terça-feira, 4 de setembro de 2007 10:49 > Para: Cascavel Perl Mongers > Assunto: Re: [Cascavel-pm] Acentuação > > opa wilson, blz? > achei esse link, ta em espanhol, mas deve dar um help... unicode, utf, > coisas do tipo, abraço > > http://www.uco.es/ccc/x500/Charset.html > > -- > -- > Flávio Bei > Webdesigner > (11) 8964 5315 > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > > Esta mensagem foi verificada pelo E-mail Protegido Terra. > Scan engine: McAfee VirusScan / Atualizado em 03/09/2007 / Versão: 5.1.00/5111 > Proteja o seu e-mail Terra: http://mail.terra.com.br/ > > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.485 / Virus Database: 269.13.5/988 - Release Date: 4/9/2007 09:14 > > > No virus found in this outgoing message. > Checked by AVG Free Edition. > Version: 7.5.485 / Virus Database: 269.13.5/988 - Release Date: 4/9/2007 09:14 > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm -- -- Flávio Bei Webdesigner (11) 8964 5315 From glasswalk3r em hotmail.com Tue Sep 4 09:18:14 2007 From: glasswalk3r em hotmail.com (Alceu Rodrigues de Freitas Junior) Date: Tue, 4 Sep 2007 19:18:14 +0300 Subject: [Cascavel-pm] =?utf-8?b?UkVTOiAgQWNlbnR1YcOnw6Nv?= In-Reply-To: <00d101c7eeff$b37b9380$a600a8c0@NOTEDELL> References: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> <557376b60709040648u1cb21c6pfc0ae0ad5e1764af@mail.gmail.com> <00d101c7eeff$b37b9380$a600a8c0@NOTEDELL> Message-ID: > From: wilson em bhmoveis.com > To: cascavel-pm em pm.org > > Oi Flávio, obrigado pela ajuda. Muito bom o texto porém devo estar fazendo alguma coisa errada. Segui o exemplo do texto e continua dando errado.O código que usei foi: > > #!/usr/local/bin/perl > use Unicode::String qw(latin1); > $u = latin1( "á"); > print $u, "\n"; > > O que retorna é á. > > Estou meio perdido, acho que o fato de usar activeperl pode ser Wilson, eu acho que é o terminal do Windows mesmo... acho que ele não suporta UTF-8. Dá uma pesquisa para ter certeza. Se for isso mesmo, você vai ter que pensar em converter a saída para ASCII ou fazer seu programa gerar uma saída em outro lugar. []'s Alceu _________________________________________________________________ Connect to the next generation of MSN Messenger  http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/31750c08/attachment.html From rafamv1 em ig.com.br Tue Sep 4 10:08:05 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Tue, 4 Sep 2007 14:08:05 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. Message-ID: <20070904_170805_031059.rafamv1@ig.com.br> Boa tarde, pessoal. Abaixo está o trecho de um "código" que estou escrevendo para apagar vários valores em um arquivo de texto. Quando digito os nomes que serão removidos e teclo enter, todos os dados do arquivo são apagados. Estou utilizando a sub "excluir_nomes" de forma incorreta?! my $name; foreach $name(@nomes) { excluir_nomes($name); } copy($file, $backup); open( ARQUIVO, '>', "$file" ); open( BACKUP, '<', "$backup" ); sub excluir_nomes { foreach () { next if $_ =~ /^$name$/; print ARQUIVO $_; } } close (ARQUIVO); close (BACKUP); From a.r.ferreira em gmail.com Tue Sep 4 11:33:46 2007 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Tue, 4 Sep 2007 15:33:46 -0300 Subject: [Cascavel-pm] [RFC] perldoc -L Message-ID: <73ddeb6c0709041133m74686287i4e2ddf427a292c9e@mail.gmail.com> Olá. Recentemente foi introduzido uma nova opção "-L" no utilitário "perldoc". Ela funciona assim: $ perldoc -L it perlintro # perlintro em Italiano $ perldoc -L fr -f pack # leia sobre pack() em Francês $ perldoc -L eo -q shell # busque a versão em Esperando dos FAQs procurando por 'shell' $ perldoc -L tlh Acme::DonMartin # a documentação de Acme::DonMartin em Klingon (Obviamente, só funciona se você tiver os PODs correspondentes instalados.) Estas mudanças foram aplicadas à versão de desenvolmento do Perl (bleadperl) e publicados no CPAN na release 3.14_01 (http://search.cpan.org/~ferreira/Pod-Perldoc-3.14_01/). O trabalho original foi feito pelo grupo de Perl Mongers da Itália e um pacote semelhante foi liberado logo a seguida para um pacote de traduções para francês (POD2::IT -- http://search.cpan.org/dist/POD2-IT/ -- e POD2::FR -- http://search.cpan.org/dist/POD2-FR/). Estas distribuições continham código que o Pod::Perldoc chamava como um plugin se disponível. Depois de trabalhar um pouco sobre o código envolvido, tornou-se evidente que o fato essential da distribuições dos PODs traduzidos é uma convenção estupidamente simples. Estes PODs vivem no namespace correspondente POD2::. É basicamente isto (embora existem alguns detalhes que devem ser tratados em breve). Com o reaproveitamento do código original em POD2::IT e algumas mudanças correspondentes em Pod::Perldoc, é possível distribuir e usar os PODs traduzidos de uma maneira muito simples. Os passos necessários são: * instalar POD2::Base (http://search.cpan.org/dist/POD2-Base/) * instalar Pod::Perldoc 3.14_03 (http://search.cpan.org/~ferreira/Pod-Perldoc-3.14_01/) * garantir que seus PODs traduzidos sejam empacotados e instalados no namespace correto POD2::, por exemplo, POD2::PT Feito isto, temos uma simplória internacionalização do perldoc funcionando. Em breve vou submeter as mudanças do Pod::Perldoc ao bleadperl. Enquanto isso, estou atento a sugestões, comentários, etc. Adriano Ferreira From glasswalk3r em hotmail.com Tue Sep 4 12:40:26 2007 From: glasswalk3r em hotmail.com (Alceu Rodrigues de Freitas Junior) Date: Tue, 4 Sep 2007 22:40:26 +0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <20070904_170805_031059.rafamv1@ig.com.br> References: <20070904_170805_031059.rafamv1@ig.com.br> Message-ID: > To: cascavel-pm em pm.org > From: rafamv1 em ig.com.br > > Boa tarde, pessoal. Abaixo está o trecho de um "código" que estou escrevendo > para apagar vários valores em um arquivo de texto. Quando digito os nomes > que serão removidos e teclo enter, todos os dados do arquivo são apagados. > Estou utilizando a sub "excluir_nomes" de forma incorreta?! > > my $name; > foreach $name(@nomes) { > excluir_nomes($name); > } > copy($file, $backup); > open( ARQUIVO, '>', "$file" ); > open( BACKUP, '<', "$backup" ); > > sub excluir_nomes { > foreach () { > next if $_ =~ /^$name$/; > print ARQUIVO $_; > } > } > close (ARQUIVO); > close (BACKUP); Não executei, mas parece correto. Talvez você ache bastante conveniente usar uma interface "tie" para seu programa. Você recria a estrutura do arquivo numa estrutura de dados do Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo será atualizado. Seu programa também não está exatamente escrito para ter boa performance, mas se isso não é um problema, está correto. :-) []'s Alceu _________________________________________________________________ Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/2a07941c/attachment.html From glasswalk3r em hotmail.com Tue Sep 4 12:45:19 2007 From: glasswalk3r em hotmail.com (Alceu Rodrigues de Freitas Junior) Date: Tue, 4 Sep 2007 22:45:19 +0300 Subject: [Cascavel-pm] [RFC] perldoc -L In-Reply-To: <73ddeb6c0709041133m74686287i4e2ddf427a292c9e@mail.gmail.com> References: <73ddeb6c0709041133m74686287i4e2ddf427a292c9e@mail.gmail.com> Message-ID: > Date: Tue, 4 Sep 2007 15:33:46 -0300 > From: a.r.ferreira em gmail.com > > Feito isto, temos uma simplória internacionalização do perldoc funcionando. > > Em breve vou submeter as mudanças do Pod::Perldoc ao bleadperl. > Enquanto isso, estou atento a sugestões, comentários, etc. Acho que eu só posso dizer uma coisa: obrigado! :-) Talvez seria legal também que automaticamente o perldoc detectasse a língua padrão do ambiente e exibisse a documentação na tradução correspondente. Fazer isso para todas as plataformas em que Perl roda pode ser um pouco complicado, no entanto (alguém tem VMS instalado aí?) []'s Alceu _________________________________________________________________ News, entertainment and everything you care about at Live.com. Get it now! http://www.live.com/getstarted.aspx -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/b4db83fe/attachment.html From rafamv1 em ig.com.br Tue Sep 4 13:05:46 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Tue, 4 Sep 2007 17:05:46 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. Message-ID: <20070904_200546_002299.rafamv1@ig.com.br> >> my $name; >> foreach $name(@nomes) { >> excluir_nomes($name); >> } >> copy($file, $backup); >> open( ARQUIVO, '>', "$file" ); >> open( BACKUP, '<', "$backup" ); >> >> sub excluir_nomes { >> foreach ( ) { >> next if $_ =~ /^$name$/; >> print ARQUIVO $_; >> } >> } >> close (ARQUIVO); >> close (BACKUP); > >Não executei, mas parece correto. > >Talvez você ache bastante conveniente usar uma interface "tie" para seu programa. Você recria a estrutura do arquivo numa estrutura de dados do Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo será atualizado. > >Seu programa também não está exatamente escrito para ter boa performance, mas se isso não é um problema, está correto. :-) > >[]'s >Alceu Olá Alceu.. Vou estudar um pouco mais sobre o "tie" e seguir a sua orientação. Se a minha lógica está correta, o código deveria apagar no arquivo, todos os nomes da lista "@nomes". Tentei novamente aqui e ele apaga todo o conteúdo mesmo! Tem um detalhe também, depois de executar o código ele me retorna: readline() on unopened filehandle BACKUP at apgsub.pl line 36. mas, se estou certo, "BACKUP" está aberto! From gabriel.vieira em gmail.com Tue Sep 4 13:16:32 2007 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Tue, 4 Sep 2007 17:16:32 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <20070904_200546_002299.rafamv1@ig.com.br> References: <20070904_200546_002299.rafamv1@ig.com.br> Message-ID: <83d8367f0709041316m720ca7c4y654cf731704583af@mail.gmail.com> tb nao executei mas o foreach aciona a subrotina antes de abrir os arquivos, não? On 9/4/07, Rafael Lebrão Martins wrote: > > >> my $name; > >> foreach $name(@nomes) { > >> excluir_nomes($name); > >> } > >> copy($file, $backup); > >> open( ARQUIVO, '>', "$file" ); > >> open( BACKUP, '<', "$backup" ); > >> > >> sub excluir_nomes { > >> foreach ( ) { > >> next if $_ =~ /^$name$/; > >> print ARQUIVO $_; > >> } > >> } > >> close (ARQUIVO); > >> close (BACKUP); > > > >Não executei, mas parece correto. > > > >Talvez você ache bastante conveniente usar uma interface "tie" para seu > programa. Você recria a estrutura do arquivo numa estrutura de dados do > Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo será > atualizado. > > > >Seu programa também não está exatamente escrito para ter boa performance, > mas se isso não é um problema, está correto. :-) > > > >[]'s > >Alceu > > Olá Alceu.. Vou estudar um pouco mais sobre o "tie" e seguir a sua > orientação. Se a minha lógica está correta, o código deveria apagar no > arquivo, todos os nomes da lista "@nomes". Tentei novamente aqui e ele apaga > todo o conteúdo mesmo! Tem um detalhe também, depois de executar o código > ele me retorna: > > readline() on unopened filehandle BACKUP at apgsub.pl line 36. > > mas, se estou certo, "BACKUP" está aberto! > > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Gabriel Vieira From cromo.jml em gmail.com Tue Sep 4 13:20:56 2007 From: cromo.jml em gmail.com (=?ISO-8859-1?Q?M=E1rcio_Vitor?=) Date: Tue, 4 Sep 2007 17:20:56 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <83d8367f0709041316m720ca7c4y654cf731704583af@mail.gmail.com> References: <20070904_200546_002299.rafamv1@ig.com.br> <83d8367f0709041316m720ca7c4y654cf731704583af@mail.gmail.com> Message-ID: <3530b8ce0709041320p2f2d3847kaa37fe904be78dbd@mail.gmail.com> A melhor opção para o caso seria mesmo o "tie", sem o tie eu faria desta maneira: ... foreach my $name(@nomes) { excluir_nomes($name); } sub excluir_nomes { my $name = shift; open(my $backup, '<', "$backupname" ); open(my $file, '>', "$filename" ); while (<$backup>) { next if $_ =~ /^$name$/; print $file $_; } close($file); close ($backup); } Não sei se isto resolve o problema, mas derepente elucida. Márcio Vitor On 9/4/07, Gabriel Vieira wrote: > > tb nao executei mas o foreach aciona a subrotina antes de abrir os > arquivos, não? > > > On 9/4/07, Rafael Lebrão Martins wrote: > > > > >> my $name; > > >> foreach $name(@nomes) { > > >> excluir_nomes($name); > > >> } > > >> copy($file, $backup); > > >> open( ARQUIVO, '>', "$file" ); > > >> open( BACKUP, '<', "$backup" ); > > >> > > >> sub excluir_nomes { > > >> foreach ( ) { > > >> next if $_ =~ /^$name$/; > > >> print ARQUIVO $_; > > >> } > > >> } > > >> close (ARQUIVO); > > >> close (BACKUP); > > > > > >Não executei, mas parece correto. > > > > > >Talvez você ache bastante conveniente usar uma interface "tie" para seu > > programa. Você recria a estrutura do arquivo numa estrutura de dados do > > Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo > será > > atualizado. > > > > > >Seu programa também não está exatamente escrito para ter boa > performance, > > mas se isso não é um problema, está correto. :-) > > > > > >[]'s > > >Alceu > > > > Olá Alceu.. Vou estudar um pouco mais sobre o "tie" e seguir a sua > > orientação. Se a minha lógica está correta, o código deveria apagar no > > arquivo, todos os nomes da lista "@nomes". Tentei novamente aqui e ele > apaga > > todo o conteúdo mesmo! Tem um detalhe também, depois de executar o > código > > ele me retorna: > > > > readline() on unopened filehandle BACKUP at apgsub.pl line 36. > > > > mas, se estou certo, "BACKUP" está aberto! > > > > > > > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > -- > Gabriel Vieira > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/6f382b13/attachment.html From gabriel.vieira em gmail.com Tue Sep 4 13:30:25 2007 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Tue, 4 Sep 2007 17:30:25 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <3530b8ce0709041320p2f2d3847kaa37fe904be78dbd@mail.gmail.com> References: <20070904_200546_002299.rafamv1@ig.com.br> <83d8367f0709041316m720ca7c4y654cf731704583af@mail.gmail.com> <3530b8ce0709041320p2f2d3847kaa37fe904be78dbd@mail.gmail.com> Message-ID: <83d8367f0709041330m6210a16ek9c11189e1d0a8d75@mail.gmail.com> Abriria o arquivo a cada execução sem necessidade :) On 9/4/07, Márcio Vitor wrote: > A melhor opção para o caso seria mesmo o "tie", sem o tie eu faria desta > maneira: > ... > foreach my $name(@nomes) { > excluir_nomes($name); > } > sub excluir_nomes { > my $name = shift; > open(my $backup, '<', "$backupname" ); > open(my $file, '>', "$filename" ); > while (<$backup>) { > next if $_ =~ /^$name$/; > print $file $_; > } > close($file); > close ($backup); > } > > Não sei se isto resolve o problema, mas derepente elucida. > > Márcio Vitor > > > On 9/4/07, Gabriel Vieira wrote: > > > > tb nao executei mas o foreach aciona a subrotina antes de abrir os > > arquivos, não? > > > > > > On 9/4/07, Rafael Lebrão Martins wrote: > > > > > > >> my $name; > > > >> foreach $name(@nomes) { > > > >> excluir_nomes($name); > > > >> } > > > >> copy($file, $backup); > > > >> open( ARQUIVO, '>', "$file" ); > > > >> open( BACKUP, '<', "$backup" ); > > > >> > > > >> sub excluir_nomes { > > > >> foreach ( ) { > > > >> next if $_ =~ /^$name$/; > > > >> print ARQUIVO $_; > > > >> } > > > >> } > > > >> close (ARQUIVO); > > > >> close (BACKUP); > > > > > > > >Não executei, mas parece correto. > > > > > > > >Talvez você ache bastante conveniente usar uma interface "tie" para seu > > > programa. Você recria a estrutura do arquivo numa estrutura de dados do > > > Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo > será > > > atualizado. > > > > > > > >Seu programa também não está exatamente escrito para ter boa > performance, > > > mas se isso não é um problema, está correto. :-) > > > > > > > >[]'s > > > >Alceu > > > > > > Olá Alceu.. Vou estudar um pouco mais sobre o "tie" e seguir a sua > > > orientação. Se a minha lógica está correta, o código deveria apagar no > > > arquivo, todos os nomes da lista "@nomes". Tentei novamente aqui e ele > apaga > > > todo o conteúdo mesmo! Tem um detalhe também, depois de executar o > código > > > ele me retorna: > > > > > > readline() on unopened filehandle BACKUP at apgsub.pl line 36. > > > > > > mas, se estou certo, "BACKUP" está aberto! > > > > > > > > > > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > -- > > Gabriel Vieira > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Gabriel Vieira From cromo.jml em gmail.com Tue Sep 4 13:42:56 2007 From: cromo.jml em gmail.com (=?ISO-8859-1?Q?M=E1rcio_Vitor?=) Date: Tue, 4 Sep 2007 17:42:56 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <83d8367f0709041330m6210a16ek9c11189e1d0a8d75@mail.gmail.com> References: <20070904_200546_002299.rafamv1@ig.com.br> <83d8367f0709041316m720ca7c4y654cf731704583af@mail.gmail.com> <3530b8ce0709041320p2f2d3847kaa37fe904be78dbd@mail.gmail.com> <83d8367f0709041330m6210a16ek9c11189e1d0a8d75@mail.gmail.com> Message-ID: <3530b8ce0709041342k3f13c4a0w217177d5294fda4@mail.gmail.com> MAL!! Então melhor assim né ? open(my $backup, '<', "$backupname" ); open(my $file, '>', "$filename" ); foreach my $name(@nomes) { excluir_nomes($name); } sub excluir_nomes { my $name = shift; while (<$backup>) { next if $_ =~ /^$name$/; print $file $_; } } close($file); close ($backup); On 9/4/07, Gabriel Vieira wrote: > > Abriria o arquivo a cada execução sem necessidade :) > > On 9/4/07, Márcio Vitor wrote: > > A melhor opção para o caso seria mesmo o "tie", sem o tie eu faria desta > > maneira: > > ... > > foreach my $name(@nomes) { > > excluir_nomes($name); > > } > > sub excluir_nomes { > > my $name = shift; > > open(my $backup, '<', "$backupname" ); > > open(my $file, '>', "$filename" ); > > while (<$backup>) { > > next if $_ =~ /^$name$/; > > print $file $_; > > } > > close($file); > > close ($backup); > > } > > > > Não sei se isto resolve o problema, mas derepente elucida. > > > > Márcio Vitor > > > > > > On 9/4/07, Gabriel Vieira wrote: > > > > > > tb nao executei mas o foreach aciona a subrotina antes de abrir os > > > arquivos, não? > > > > > > > > > On 9/4/07, Rafael Lebrão Martins wrote: > > > > > > > > >> my $name; > > > > >> foreach $name(@nomes) { > > > > >> excluir_nomes($name); > > > > >> } > > > > >> copy($file, $backup); > > > > >> open( ARQUIVO, '>', "$file" ); > > > > >> open( BACKUP, '<', "$backup" ); > > > > >> > > > > >> sub excluir_nomes { > > > > >> foreach ( ) { > > > > >> next if $_ =~ /^$name$/; > > > > >> print ARQUIVO $_; > > > > >> } > > > > >> } > > > > >> close (ARQUIVO); > > > > >> close (BACKUP); > > > > > > > > > >Não executei, mas parece correto. > > > > > > > > > >Talvez você ache bastante conveniente usar uma interface "tie" para > seu > > > > programa. Você recria a estrutura do arquivo numa estrutura de dados > do > > > > Perl, e ao remover uma linha desse estrutura, automaticamente o > arquivo > > será > > > > atualizado. > > > > > > > > > >Seu programa também não está exatamente escrito para ter boa > > performance, > > > > mas se isso não é um problema, está correto. :-) > > > > > > > > > >[]'s > > > > >Alceu > > > > > > > > Olá Alceu.. Vou estudar um pouco mais sobre o "tie" e seguir a sua > > > > orientação. Se a minha lógica está correta, o código deveria > apagar no > > > > arquivo, todos os nomes da lista "@nomes". Tentei novamente aqui e > ele > > apaga > > > > todo o conteúdo mesmo! Tem um detalhe também, depois de executar o > > código > > > > ele me retorna: > > > > > > > > readline() on unopened filehandle BACKUP at apgsub.pl line 36. > > > > > > > > mas, se estou certo, "BACKUP" está aberto! > > > > > > > > > > > > > > > > _______________________________________________ > > > > Cascavel-pm mailing list > > > > Cascavel-pm em pm.org > > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > > > > > -- > > > Gabriel Vieira > > > _______________________________________________ > > > Cascavel-pm mailing list > > > Cascavel-pm em pm.org > > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > -- > Gabriel Vieira > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/65a32b05/attachment.html From wendelscardua em gmail.com Tue Sep 4 13:46:34 2007 From: wendelscardua em gmail.com (Wendel Scardua) Date: Tue, 4 Sep 2007 17:46:34 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <20070904_170805_031059.rafamv1@ig.com.br> References: <20070904_170805_031059.rafamv1@ig.com.br> Message-ID: <726229b50709041346p6b924a34yd5c2f1d811108048@mail.gmail.com> Que tal algo assim (como uma solução inicial, mas não-ótima) : copy($file, $backup); open( ARQUIVO, '>', "$file" ); open( BACKUP, '<', "$backup" ); while(my $linha = ) { chomp $linha; if ( ! grep { $linha eq $_ } @nomes ) { # se ( linha não tá na lista de nomes ) print ARQUIVO $linha,"\n"; } } close ARQUIVO; close BACKUP; Claro, usar grep aqui é feio, mas é só uma solução inicial... o ideal seria usar first() (List::Util ? ) ou fazer um loop à mão, testando com eq - pra quê regexp ?. Ou então o que *eu* faria: # no começo my %hash_nomes; @hash_nomes{ @nomes } = (); # automagicamente criar um hash cujas chaves sejam os nomes. # no lugar daquele if: if ( ! exists $hash_nomes{ $linha } ) { # se (existe a chave $linha no hash de nomes) Mas fique de olho no fluxo do seu programa: você tava fazendo um loop que chama o excluir_nomes, e só depois de acabar o loop é que você tava abrindo os arquivos. E, o mais importante: use strict; use warnings; []s Wendel On 9/4/07, Rafael Lebrão Martins wrote: > > Boa tarde, pessoal. Abaixo está o trecho de um "código" que estou > escrevendo > para apagar vários valores em um arquivo de texto. Quando digito os nomes > que serão removidos e teclo enter, todos os dados do arquivo são apagados. > Estou utilizando a sub "excluir_nomes" de forma incorreta?! > > my $name; > foreach $name(@nomes) { > excluir_nomes($name); > } > copy($file, $backup); > open( ARQUIVO, '>', "$file" ); > open( BACKUP, '<', "$backup" ); > > sub excluir_nomes { > foreach () { > next if $_ =~ /^$name$/; > print ARQUIVO $_; > } > } > close (ARQUIVO); > close (BACKUP); > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/5c058db8/attachment.html From wendelscardua em gmail.com Tue Sep 4 13:53:18 2007 From: wendelscardua em gmail.com (Wendel Scardua) Date: Tue, 4 Sep 2007 17:53:18 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <3530b8ce0709041342k3f13c4a0w217177d5294fda4@mail.gmail.com> References: <20070904_200546_002299.rafamv1@ig.com.br> <83d8367f0709041316m720ca7c4y654cf731704583af@mail.gmail.com> <3530b8ce0709041320p2f2d3847kaa37fe904be78dbd@mail.gmail.com> <83d8367f0709041330m6210a16ek9c11189e1d0a8d75@mail.gmail.com> <3530b8ce0709041342k3f13c4a0w217177d5294fda4@mail.gmail.com> Message-ID: <726229b50709041353m36d5a274j58c798db43024cfd@mail.gmail.com> Beeem melhor (principalmente os open()s).... mas ainda assim, não tá fazendo a coisa certa... Note que, da primeira vez que você chamar excluir_nomes, você vai percorrer todas as linhas do arquivo backup. Quando você chama excluir_nomes de novo, não vai ter mais linhas pra ler, então você só vai ter excluido o primeiro nome. O certo seria você olhar pra cada linha de backup, e decidir de se ela vive ou morre com base na lista de todos os nomes. (ou abrir e fechar os arquivos dentro da função, o que não é muito eficiente) []s Wendel On 9/4/07, Márcio Vitor wrote: > > MAL!! > Então melhor assim né ? > > open(my $backup, '<', "$backupname" ); > open(my $file, '>', "$filename" ); > > foreach my $name(@nomes) { > excluir_nomes($name); > } > > sub excluir_nomes { > my $name = shift; > while (<$backup>) { > next if $_ =~ /^$name$/; > print $file $_; > } > } > close($file); > close ($backup); > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/d5e55d0e/attachment.html From rafamv1 em ig.com.br Tue Sep 4 13:53:31 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Tue, 4 Sep 2007 17:53:31 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. Message-ID: <20070904_205331_035514.rafamv1@ig.com.br> > > Que tal algo assim (como uma solução inicial, mas não-ótima) : > >copy($file, $backup); >open( ARQUIVO, '>', "$file" ); >open( BACKUP, '<', "$backup" ); >while(my $linha = ) { > > chomp $linha; > > if ( ! grep { $linha eq $_ } @nomes ) { # se ( linha não tá na lista de nomes ) > print ARQUIVO $linha,"\n"; > } >} >close ARQUIVO; >close BACKUP; > >Claro, usar grep aqui é feio, mas é só uma solução inicial... o ideal seria usar first() (List::Util ? ) ou fazer um loop à mão, testando com eq - pra quê regexp ?. > >Ou então o que *eu* faria: > ># no começo > >my %hash_nomes; @hash_nomes{ @nomes } = (); # automa g icamente criar um hash cujas chaves sejam os nomes. > ># no lugar daquele if: >if ( ! exists $hash_nomes{ $linha } ) { # se (existe a chave $linha no hash de nomes) > >Mas fique de olho no fluxo do seu programa: você tava fazendo um loop que chama o excluir_nomes, e só depois de acabar o loop é que você tava abrindo os arquivos. > >E, o mais importante: >use strict; >use warnings; > >[]s > >Wendel > > On 9/4/07, Rafael Lebrão Martins < rafamv1 em ig.com.br > wrote: >Boa tarde, pessoal. Abaixo está o trecho de um "código" que estou escrevendo >para apagar vários valores em um arquivo de texto. Quando digito os nomes >que serão removidos e teclo enter, todos os dados do arquivo são apagados. > >Estou utilizando a sub "excluir_nomes" de forma incorreta?! > >my $name; >foreach $name(@nomes) { >excluir_nomes($name); >} >copy($file, $backup); >open( ARQUIVO, '>', "$file" ); > >open( BACKUP, '<', "$backup" ); > >sub excluir_nomes { >foreach ( ) { >next if $_ =~ /^$name$/; >print ARQUIVO $_; > } >} >close (ARQUIVO); >close (BACKUP); > Estou usando o "strict" e o "warnings", é porque coloquei apenas um pedaço do "código"... Obrigado pelas dicas.. Vou precisar sair, mas assim que chegar, eu posto o resultado na lista! Grato... From igor.sutton em yahoo.co.uk Tue Sep 4 15:01:41 2007 From: igor.sutton em yahoo.co.uk (Igor Sutton Lopes) Date: Wed, 5 Sep 2007 00:01:41 +0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Acentua=E7=E3o?= In-Reply-To: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> References: <00c301c7eef2$6c8d3bc0$a600a8c0@NOTEDELL> Message-ID: On Sep 4, 2007, at 2:52 PM, wilsonalencar wrote: > ASCII utf8 without boom. Sei que deve ser uma coisa simples mas > realmente não consigo descobrir como faze- ASCII utf8? Decida-se :-) Dica: se você tem caracteres utf8 DENTRO do seu programa, utilize o pragma 'utf8' use strict; use warnings; use utf8; # supondo que você está gravando seu arquivo com encoding utf8 my $var = "á"; Boa sorte! -- Igor -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070905/6b73a604/attachment-0001.html From rafamv1 em ig.com.br Wed Sep 5 03:49:05 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Wed, 5 Sep 2007 07:49:05 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. Message-ID: <20070905_104905_073091.rafamv1@ig.com.br> > Beeem melhor (principalmente os open()s).... mas ainda assim, não tá fazendo a coisa certa... > >Note que, da primeira vez que você chamar excluir_nomes, você vai percorrer todas as linhas do arquivo backup. > >Quando você chama excluir_nomes de novo, não vai ter mais linhas pra ler, então você só vai ter excluido o primeiro nome. > >O certo seria você olhar pra cada linha de backup, e decidir de se ela vive ou morre com base na lista de todos os nomes. (ou abrir e fechar os arquivos dentro da função, o que não é muito eficiente) > >[]s > >Wendel Alterei o loop, mas continua excluindo apenas o primeiro nome.. Acho que da forma que fiz agora, teria que excluir, não? copy( $file, $backup ); open( ARQUIVO, '>', "$file" ); open( BACKUP, '<', "$backup" ); foreach my $name(@nomes) { excluir_nomes($name); } sub excluir_nomes{ my $name = shift; foreach() { next if $_ =~ /^$name$/; print ARQUIVO $_; }} close (ARQUIVO); close (BACKUP); From igor.sutton em yahoo.co.uk Wed Sep 5 04:58:30 2007 From: igor.sutton em yahoo.co.uk (Igor Lopes) Date: Wed, 5 Sep 2007 12:58:30 +0100 (BST) Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <20070905_104905_073091.rafamv1@ig.com.br> Message-ID: <160792.40982.qm@web23002.mail.ird.yahoo.com> --- Rafael Lebrão Martins wrote: > copy( $file, $backup ); > open( ARQUIVO, '>', "$file" ); > open( BACKUP, '<', "$backup" ); > > foreach my $name(@nomes) { > excluir_nomes($name); > } > > sub excluir_nomes{ > my $name = shift; > foreach() { > next if $_ =~ /^$name$/; > print ARQUIVO $_; > }} > close (ARQUIVO); > close (BACKUP); # abre arquivos utilizando variaveis lexicas open( my $in, '<', "in.txt" ) or die "Problemas ao abrir in.txt: $!"; open( my $out, '>', "out.txt" ) or die "Problemas ao abrir out.txt: $!"; # nomes que queremos excluir my @names = qw(larry damian randal); # cria expressao regular com os nomes declarados my $names_re = sprintf "(?:%s)", join( '|', @names ); # itera arquivo de entrada while (<$in>) { chomp; next if m{$names_re}; print $out $_, $/; } # fecha arquivos close($out); close($in); ___________________________________________________________ Yahoo! Answers - Got a question? Someone out there knows the answer. Try it now. http://uk.answers.yahoo.com/ From a.r.ferreira em gmail.com Wed Sep 5 05:10:39 2007 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Wed, 5 Sep 2007 09:10:39 -0300 Subject: [Cascavel-pm] [RFC] perldoc -L In-Reply-To: References: <73ddeb6c0709041133m74686287i4e2ddf427a292c9e@mail.gmail.com> Message-ID: <73ddeb6c0709050510m52ea6123k9a3330f489b47a2b@mail.gmail.com> On 9/4/07, Alceu Rodrigues de Freitas Junior wrote: > > > Date: Tue, 4 Sep 2007 15:33:46 -0300 > > From: a.r.ferreira em gmail.com > > > > Feito isto, temos uma simplória internacionalização do perldoc > funcionando. > > > > Em breve vou submeter as mudanças do Pod::Perldoc ao bleadperl. > > Enquanto isso, estou atento a sugestões, comentários, etc. > > Acho que eu só posso dizer uma coisa: obrigado! :-) > > Talvez seria legal também que automaticamente o perldoc detectasse a língua > padrão do ambiente e exibisse a documentação na tradução correspondente. > Fazer isso para todas as plataformas em que Perl roda pode ser um pouco > complicado, no entanto (alguém tem VMS instalado aí?) Obrigado pelo retorno, Alceu. Quanto à detecção automática, eu creio que possa ser colocado algum plugin para habilitar este tipo de coisa, mas não acho que deva fazer parte da configuração default. O programador Perl é basicamente um orgulhoso, orgulhoso pelo seu código, orgulhoso pelo seu conhecimento. Depois de anos lendo a documentação em inglês, ele pode ficar aborrecido de uma configuração automática que ele não escolheu que determina que agora sua opção padrão é ler a documentação em português. E em geral, a documentação original tem a maior expressividade e densidade de informação. Também, a gente pode estar tão acostumado ao inglês, que tem dificuldades de entender uma tradução onde não se reconhece imediatamente alguns termos técnicos. Por exemplo, lembro de uma questão de SQL onde só depois de algum tempo consegui ligar "junção" como tradução de "join". Em Unix, você sempre pode incluir algo como alias perldoc='perldoc -L pt_br' em .bash_profile ou coisa correspondente para o shell que você usa. Em Windows (e também em Unix) você pode configurar a variável de ambiente PERLDOC para conter "-L pt_br" com o mesmo efeito. Como um outro exemplo, não gostei muito quando o Google passou a escolher a interface em português quando eu usava a máquina de busca. Felizmente eles tornaram um incômodo permanente que você escolhesse por si sua interface preferida. Acredito que este tipo de coisa tem de ser uma escolha explícita do usuário. E como outro ponto problemático, eu já me cansei de máquinas mal configuradas que não decidirão corretamente sobre o 'locale' e 'language' que você deveria estar usando. Em geral, será frustrante para quem pensou que ia começar a ler a documentação em português e descobre que tem que aprender mais da configuração do seu Unix que jura que ele está na Califórnia. Mas a idéia do plugin que pode ser habilitado para fazer a detecção automática não está descartada e contribuições são bem vindas. Saudações, Adriano Ferreira From rafamv1 em ig.com.br Wed Sep 5 05:17:14 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Wed, 5 Sep 2007 09:17:14 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. Message-ID: <20070905_121714_030724.rafamv1@ig.com.br> ># abre arquivos utilizando variaveis lexicas >open( my $in, '<', "in.txt" ) or die "Problemas ao >abrir in.txt: $!"; >open( my $out, '>', "out.txt" ) or die "Problemas ao >abrir out.txt: $!"; > ># nomes que queremos excluir >my @names = qw(larry damian randal); > ># cria expressao regular com os nomes declarados >my $names_re = sprintf "(?:%s)", join( '|', @names ); > ># itera arquivo de entrada >while (<$in>) { > chomp; > next if m{$names_re}; > print $out $_, $/; >} > ># fecha arquivos >close($out); >close($in); Oi Igor, testei aqui e funcionou corretamente. Obrigado.. Havia algo errado no "código" que eu escrevi? sub excluir_usuario { my $name = shift; foreach () { next if $_ =~ /^$name$/; print ARQUIVO $_; } } Com isso ai ele não deveria excluir um por um?? From ptfzs em yahoo.com.br Wed Sep 5 06:13:01 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Wed, 5 Sep 2007 10:13:01 -0300 (ART) Subject: [Cascavel-pm] Ler Arquivo Message-ID: <270374.91609.qm@web31311.mail.mud.yahoo.com> Pessoal.. nao sei se é a melhor forma.. mas tenho um arquivo e preciso ler a 2 linha ( eh o cabecalho) e a 4 linha em diante( sao os dados ) my $arquivo; my $linha; while ($arquivo = <*.dat>) { my $file= $caminho.$arquivo; open(INFILE,"< $file") or die "Impossivel abrir o arquivo $_\n"; $linha=; # le a 1 linha e descarta $linha=; # le a 2 linha de variaveis @fields= split(/,/,$linha); --> aqui eh o cabecalho que eu guardo... . . . $linha=; # descarta a 3 linha while ( $linha= ) { # Loop para ler as linhas seguintes... ......... ele nao esta descartando a 3 linha.. :D Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070905/9839155a/attachment.html From rafamv1 em ig.com.br Wed Sep 5 06:31:42 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Wed, 5 Sep 2007 10:31:42 -0300 Subject: [Cascavel-pm] Ler Arquivo Message-ID: <20070905_133142_008792.rafamv1@ig.com.br> > Pessoal.. nao sei se é a melhor forma.. >mas tenho um arquivo e preciso ler a 2 linha ( eh o cabecalho) e a 4 linha em diante( sao os dados ) > >my $arquivo; >my $linha; > >while ($arquivo = <*.dat>) >{ > my $file= $caminho.$arquivo; > open(INFILE,"< $file") or die "Impossivel abrir o arquivo $_\n"; > > $linha= ; # le a 1 linha e descarta > $linha= ; # le a 2 linha de variaveis > @fields= split(/,/,$linha); --> aqui eh o cabecalho que eu guardo... >. >. >. > $linha= ; # descarta a 3 linha > > while ( $linha= ) > { # Loop para ler as > linhas seguintes... > >......... > >ele nao esta descartando a 3 linha.. >:D Eu faria desta forma: #!/usr/bin/perl use strict; use warnings; my $arquivo = 'caminho'; open (my $infile, '<', "$arquivo"); my @linhas = <$infile>; foreach (@linhas) { next if eq $linhas[2]; close ($infile); } From rafamv1 em ig.com.br Wed Sep 5 06:37:20 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Wed, 5 Sep 2007 10:37:20 -0300 Subject: [Cascavel-pm] Ler Arquivo Message-ID: <20070905_133720_067700.rafamv1@ig.com.br> Correção.. Faltou "$_" na linha: next if ... #!/usr/bin/perl use strict; use warnings; my $arquivo = 'caminho'; open (my $infile, '<', "$arquivo"); my @linhas = <$infile>; foreach (@linhas) { next if $_ eq $linhas[2]; close ($infile); From ptfzs em yahoo.com.br Wed Sep 5 06:39:05 2007 From: ptfzs em yahoo.com.br (Patty Silva) Date: Wed, 5 Sep 2007 10:39:05 -0300 (ART) Subject: [Cascavel-pm] Ler Arquivo In-Reply-To: <20070905_133142_008792.rafamv1@ig.com.br> Message-ID: <249664.48951.qm@web31302.mail.mud.yahoo.com> Mas desse jeito, vc carrrega o arquivo inteiro de uma vez.. :D Nao eh Nelson?? :) isso nao eh tao elegante assim para um arquivo com diversas linhas :D Rafael Lebrão Martins escreveu: > Pessoal.. nao sei se é a melhor forma.. >mas tenho um arquivo e preciso ler a 2 linha ( eh o cabecalho) e a 4 linha em diante( sao os dados ) > >my $arquivo; >my $linha; > >while ($arquivo = <*.dat>) >{ > my $file= $caminho.$arquivo; > open(INFILE,"< $file") or die "Impossivel abrir o arquivo $_\n"; > > $linha= ; # le a 1 linha e descarta > $linha= ; # le a 2 linha de variaveis > @fields= split(/,/,$linha); --> aqui eh o cabecalho que eu guardo... >. >. >. > $linha= ; # descarta a 3 linha > > while ( $linha= ) > { # Loop para ler as > linhas seguintes... > >......... > >ele nao esta descartando a 3 linha.. >:D Eu faria desta forma: #!/usr/bin/perl use strict; use warnings; my $arquivo = 'caminho'; open (my $infile, '<', "$arquivo"); my @linhas = <$infile>; foreach (@linhas) { next if eq $linhas[2]; close ($infile); } _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm Flickr agora em português. Você clica, todo mundo vê. Saiba mais. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070905/2f54cd1c/attachment-0001.html From frederico em gmail.com Wed Sep 5 06:48:00 2007 From: frederico em gmail.com (Frederico Recsky) Date: Wed, 5 Sep 2007 10:48:00 -0300 Subject: [Cascavel-pm] Ler Arquivo In-Reply-To: <249664.48951.qm@web31302.mail.mud.yahoo.com> References: <20070905_133142_008792.rafamv1@ig.com.br> <249664.48951.qm@web31302.mail.mud.yahoo.com> Message-ID: <88fe68ee0709050648q6f8558e8xe6d334878a79338e@mail.gmail.com> Olá! On 9/5/07, Patty Silva wrote: > Mas desse jeito, vc carrrega o arquivo inteiro de uma vez.. :D > Nao eh Nelson?? :) isso nao eh tao elegante assim para um arquivo com > diversas linhas :D Apenas uma sugestão. Com certeza essa seu cabe?alho da padrão com alguma coisa, assim como a 1 e a 3 linha tambem tendem a ser diferentes da 4 para frente. Se isso for verdade voce poderia fazer somente um while(<%$fh>) e filtrar por regex ou if , etc.. while(<$fh>){ next if /condicao/; 1 linha if (/condicao) { $header = $_ ; } ... } O legal disso é que você valida o arquivo junto com a "penera" ;) []'s -- ____________________________ Frederico Recsky Linux User: #253572 http://www.fred.eti.br http://www.perl.org.br From wendelscardua em gmail.com Wed Sep 5 07:00:26 2007 From: wendelscardua em gmail.com (Wendel Scardua) Date: Wed, 5 Sep 2007 11:00:26 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. In-Reply-To: <20070905_121714_030724.rafamv1@ig.com.br> References: <20070905_121714_030724.rafamv1@ig.com.br> Message-ID: <726229b50709050700h1adbd7f2v5c13fce560162f17@mail.gmail.com> Você ignorou meu comentário :-( Olhe direito para a sua função... Leia o que você escreveu, e não o que você quis escrever [1] A função excluir_usuário está lendo, uma por uma, todas as linhas do arquivo, até chegar no final do arquivo. Quando ele chega no final do arquivo, ele não volta automagicamente pro começo do mesmo. Quando você chama a função pela segunda vez, o filehandle continua apontando para o final do arquivo, não havendo mais linhas para ler. Sim, você poderia "rebobinar" o cursor pro começo do arquivo, mas se você prestar atenção no que está acontecendo, vai ver que não vai dar certo. (mas se não conseguir ver o problema que isso causaria, faça seek(BACKUP,0,0) pra ver por si mesmo, hehehe). Espero que agora esteja mais claro :-) []s Wendel [1] - Pelo menos pra mim (e pra algumas pessoas) isso é o que mais atrapalha na hora de encontrar bugs - só enxergarmos o que quisemos escrever, não o que de fato foi escrito. Por isso que às vezes, depois de horas quebrando a cabeça, um amigo pode chegar, bater o olho no seu código e de cara apontar onde tá o problema :-) On 9/5/07, Rafael Lebrão Martins wrote: > > > > Oi Igor, testei aqui e funcionou corretamente. Obrigado.. Havia algo > errado > no "código" que eu escrevi? > > sub excluir_usuario { > my $name = shift; > foreach () { > next if $_ =~ /^$name$/; > print ARQUIVO $_; > } > } > > Com isso ai ele não deveria excluir um por um?? > > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070905/2e47ca81/attachment.html From rafamv1 em ig.com.br Wed Sep 5 07:05:22 2007 From: rafamv1 em ig.com.br (Rafael Lebrão Martins) Date: Wed, 5 Sep 2007 11:05:22 -0300 Subject: [Cascavel-pm] Apagar nomes em arquivo. Message-ID: <20070905_140522_047710.rafamv1@ig.com.br> > Você ignorou meu comentário :-( > >Olhe direito para a sua função... Leia o que você escreveu, e não o que você quis escrever [1] > >A função excluir_usuário está lendo, uma por uma, todas as linhas do arquivo, até chegar no final do arquivo. Quando ele chega no final do arquivo, ele não volta automagicamente pro começo do mesmo. > >Quando você chama a função pela segunda vez, o filehandle continua apontando para o final do arquivo, não havendo mais linhas para ler. > >Sim, você poderia "rebobinar" o cursor pro começo do arquivo, mas se você prestar atenção no que está acontecendo, vai ver que não vai dar certo. (mas se não conseguir ver o problema que isso causaria, faça seek(BACKUP,0,0) pra ver por si mesmo, hehehe). > >Espero que agora esteja mais claro :-) > >[]s > >Wendel > >[1] - Pelo menos pra mim (e pra algumas pessoas) isso é o que mais atrapalha na hora de encontrar >bugs - só enxergarmos o que quisemos escrever, não o que de fato foi >escrito. Por isso que às vezes, depois de horas quebrando a cabeça, um amigo pode chegar, bater o olho no seu código e de cara apontar onde tá o problema :-) > > On 9/5/07, >Rafael Lebrão Martins < rafamv1 em ig.com.br > wrote: > >Oi Igor, testei aqui e funcionou corretamente. Obrigado.. Havia algo errado >no "código" que eu escrevi? > >sub excluir_usuario { >my $name = shift; >foreach ( ) { >next if $_ =~ /^$name$/; > >print ARQUIVO $_; > } > } Foi mal!! :) Agora eu entendi..Por isso ele apagava apenas o primeiro valor da lista.. Obrigado!! From flaviobei em gmail.com Wed Sep 5 08:59:44 2007 From: flaviobei em gmail.com (Flavio Bei) Date: Wed, 5 Sep 2007 12:59:44 -0300 Subject: [Cascavel-pm] =?utf-8?q?sequ=C3=AAncias_de_dados?= Message-ID: <557376b60709050859k2574286y2f21aa3565dfe1f4@mail.gmail.com> ae pessoal, blz? to com o seguinte problema... o código a seguir abre um txt e faz algumas verificações, pra testar a consistencia do mesmo, está funcionando de boa, mas preciso de uma função a mais, que não