[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