Só pra começar:<br>O especificardor ">>" é utilizado para inserir (acrescentar) novo conteúdo a um arquivo. Já o especificador ">" é utilizado para definir um novo conteúdo (apaga o antigo e coloca o novo) ou ainda criar o arquivo.
<br><br>Seguindo:<br><br>- A sua estrutura está muito prematura.<br>- Você usa um "open" que não possui especificamente um "close".<br>- Você faz uma substituição que não lhe serve de nada, em uma variável cujo valor não é o que você espera.
<br>- Você não alterou o conteúdo do arquivo, logo ele permanecerá o mesmo a não ser que um novo site seja adicionado.<br><br>Abuse do poder do Perl :D<br><br>Fazendo o seu código funcionar:<br><br>- Apenas coloquei para que fosse impresso um novo conteúdo ao arquivo, sendo que esse novo conteúdo seria o conteúdo atual com excessão da linha cujo valor é o "$site".
<br><br>----------------------------8<----------------------------<br>#!/usr/bin/perl<br><br>use warnings;<br>use strict;<br><br>my $arquivo = '/etc/squid/arquivos/liberados/dl_geral';<br><div style="direction: ltr;">
open(LIBERADOS,$arquivo) or die "Nao pode abrir o arquivo $arquivo: $!";<br>my @linhas = <LIBERADOS>;<br>close (LIBERADOS);<br>print "@linhas\n";<br><br># leitura<br>print "Insira o site a ser removido: ";
<br>my $site = <STDIN>;<br>chomp $site;<br><br># execução<br>open(LIBERADOS,">",$arquivo) or die "Nao pode abrir o arquivo $arquivo: $!";<br>foreach my $linha (@linhas){<br> if ($linha eq $site){
<br> print "O site $site foi removido com sucesso\n";<br> }<br> else{<br> print LIBERADOS "$linha\n";<br> }<br>}<br>close(LIBERADOS) or die "Nao pode fechar o arquivo $arquivo: $!";
<br><br>else {<br> open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo $arquivo: $!" );<br> print ( LIBERADOS "\n$site" );<br> close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo $arquivo: $!" );
<br> system("squid -k reconfigure");<br> print " O site foi adicionado com sucesso.\n";<br>}</div>---------------------------->8----------------------------<br><br><br><div><span class="gmail_quote">
On 2/22/07, <b class="gmail_sendername">Rafael Lebrão Martins</b> <<a href="mailto:rafamv1@ig.com.br">rafamv1@ig.com.br</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Boa tarde, estou com problemas para criar um script que remove sites de uma<br>lista do squid. A função do script é receber como argumento o nome do site a<br>ser removido, caso o site exista na lista e imprimir na tela a mensagem de
<br>que o site foi removido com sucesso. Fiz o script abaixo, quando o executo<br>ele imprime a mensagem de que o site foi removido, no entanto, se eu abro o<br>arquivo do squid o site continua lá. Preciso de ajuda para resolver esse
<br>problema... Segue abaixo o script... Obrigado.<br><br>#!/usr/bin/perl<br><br>use warnings;<br>use strict;<br><br><br>my $arquivo = '/etc/squid/arquivos/liberados/dl_geral';<br>open ( LIBERADOS,$arquivo ) or die ( "Nao pode abrir o arquivo: $!" );
<br>my @linhas = <LIBERADOS>;<br>close (LIBERADOS);<br>print "@linhas\n";<br>print "Insira o site a ser removido: ";<br>my $site = <STDIN>;<br>chomp $site;<br>open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo: $!" );
<br>my $linhas = "@linhas";<br>if ($linhas =~ $site) {<br>#delete (LIBERADOS $site};<br> s/$site/funcionou/gi;<br>print "O site $site foi removido com sucesso\n";<br>close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo: $!" );
<br>}<br><br>else {<br>open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo: $!" );<br>print ( LIBERADOS "\n$site" );<br>close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo: $!" );
<br>system("squid -k reconfigure");<br>print " O site foi adicionado com sucesso.\n";<br>}<br><br><br><br><br><br><br>Rafael Lebrao Martins.<br>Cursando Ciências Contábeis.<br>Universidade Estadual Do<br>
Sudoeste Da Bahia.<br>Microsoft Certified<br>Professional<br>70-271:Supporting Users and<br>Troubleshooting a Microsoft®<br>Windows® XP Operating System<br>TEL - (77) 9989-6327<br><br><br><br>_______________________________________________
<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div>
<br><br clear="all"><br>-- <br>Gabriel Vieira