[Cascavel-pm] Script em Perl

André Garcia Carneiro andre.garcia.carneir em terra.com.br
Terça Fevereiro 27 07:58:51 PST 2007


> 
>  Oi André, estou tentando aprimorar meus conhecimentos. Qualquer sujestão de 
> site ou livro que você puder me passar, será uma boa ajuda. Quanto ao 
> script, eu não quero criar um outro arquivo mas remover o site digitado como 
> argumento para a variável $site da lista dl_geral. Recebi o script abaixo, 
> no entanto ele remove todo o conteúdo do arquivo. Acho que seria o ">"...mas 
> não estou entendendo a lógica de como retirar do arquivo apenas o conteúdo 
> de $site. 

Que ótimo! Bem... sobre livros sugiro os 'clássicos': Programming Perl e Learning Perl, e depois que você entre
nesse site: 	books.perl.org/onlinebooks/

Cheers!





> ----------------------------8<---------------------------- 
> #!/usr/bin/perl 
> 
> use warnings; 
> use strict; 
> 
> my $arquivo = '/etc/squid/arquivos/liberados/dl_geral'; 
> 
> open(LIBERADOS,$arquivo) or die "Nao pode abrir o arquivo $arquivo: $!"; 
> my @linhas = <LIBERADOS>; 
> close (LIBERADOS); 
> print "@linhas\n"; 
> 
> # leitura 
> print "Insira o site a ser removido: "; 
> my $site = <STDIN>; 
> chomp $site; 
> 
> # execução 
> open(LIBERADOS,">",$arquivo) or die "Nao pode abrir o arquivo $arquivo: $!"; 
> foreach my $linha (@linhas){ 
>      if ($linha eq $site){ 
>           print "O site $site foi removido com sucesso\n"; 
>      } 
>      else{ 
>           print LIBERADOS "$linha\n"; 
>      } 
> } 
> close(LIBERADOS) or die "Nao pode fechar o arquivo $arquivo: $!"; 
> 
> else { 
>      open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo 
> $arquivo: $!" ); 
>      print ( LIBERADOS "\n$site" ); 
>      close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo $arquivo: $!" 
> ); 
>      system("squid -k reconfigure"); 
>      print " O site foi adicionado com sucesso.\n"; 
> } 
> ---------------------------->8---------------------------- 
> 
> 
> 
> Em (08:28:49), Cascavel Perl Mongers escreveu: 
> 
> 
> >Oi Rafael 
> > 
> >> #!/usr/bin/perl 
> >> 
> >> use warnings; 
> >> use strict; 
> >> 
> >> 
> >> my $arquivo = '/etc/squid/arquivos/liberados/dl_geral'; 
> >> open ( LIBERADOS,$arquivo ) or die ( "Nao pode abrir o arquivo: $!" ); 
> >Precisa melhorar o seu tratamento de erros... quem sabe com um 
> >eval(perldoc.perl.org/functions/) pra 
> >começar...(quem tiver idéia melhor, por favor não deixe de postar). 
> > 
> >> my @linhas = ; 
> >> close (LIBERADOS); 
> >> print "@linhas\n"; 
> >> print "Insira o site a ser removido: "; 
> >> my $site = ; 
> >> chomp $site; 
> >> open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo: $!" 
> ); 
> > 
> >Quando você abre com '>>', significa que você adicionará coisas no 
> >arquivo... Se você quiser abrir um novo 
> >arquivo(se é que eu entendi o seu objetivo), você deve abrir com ">"(um 
> >"sinal de maior" apenas). Desse modo 
> >você perderá o conteúdo que estava lá(portanto cuidado, faça um backup se 
> >for fazer isso). 
> > 
> >> my $linhas = "@linhas"; 
> > 
> >Posso estar errado, mas não seria melhor ter um 'foreach' ou um 'map' por 
> >aqui???? 
> > 
> >> if ($linhas =~ $site) { 
> >> #delete (LIBERADOS $site}; 
> >> s/$site/funcionou/gi; 
> >> print "O site $site foi removido com sucesso\n"; 
> >> close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo: $!" ); 
> >> } 
> >> 
> >> else { 
> >> open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo: $!" 
> ); 
> >> print ( LIBERADOS "\n$site" ); 
> >> close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo: $!" ); 
> >> system("squid -k reconfigure"); 
> >> print " O site foi adicionado com sucesso.\n"; 
> >> } 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> Rafael Lebrao Martins. 
> >> Cursando Ciências Contábeis. 
> >> Universidade Estadual Do 
> >> Sudoeste Da Bahia. 
> >> Microsoft Certified 
> >> Professional 
> >> 70-271:Supporting Users and 
> >> Troubleshooting a Microsoft® 
> >> Windows® XP Operating System 
> >> TEL - (77) 9989-6327 
> >> 
> >> 
> >> 
> >> E-mail classificado pelo Identificador de Spam Inteligente Terra. 
> >> Para alterar a categoria classificada, visite 
> >> 
>
>http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=andre.garcia.carneir&_l=1,1172529719.159984.10939.alcala.hst.terra.com.br,5572,Des15,Des15

> >> 
> >> Esta mensagem foi verificada pelo E-mail Protegido Terra. 
> >> Scan engine: McAfee VirusScan / Atualizado em 26/02/2007 / Versão: 
> >5.1.00/4971 
> >> Proteja o seu e-mail Terra: http://mail.terra.com.br/ 
> >> 
> > 
> >-- 
> >André Garcia Carneiro 
> >Developer(Perl/PHP) 
> >Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org 
> > 
> >_______________________________________________ 
> >Cascavel-pm mailing list 
> >Cascavel-pm em pm.org 
> >http://mail.pm.org/mailman/listinfo/cascavel-pm 
> > 
> >---------- 
> 
> 
> 
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
>
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=andre.garcia.carneir&_l=1,1172582922.469532.30869.morondava.hst.terra.com.br,8132,Des15,Des15
> 
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 26/02/2007 / Versão: 5.1.00/4971
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
> 

--
André Garcia Carneiro
Developer(Perl/PHP)
Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org



Mais detalhes sobre a lista de discussão Cascavel-pm