[Cascavel-pm] Script em Perl

rafamv1 rafamv1 em ig.com.br
Terça Fevereiro 27 05:26:57 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. 
----------------------------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 
> 
>---------- 




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