[SP-pm] Sugestão
Eden Cardim
edencardim at gmail.com
Wed Oct 7 10:06:49 PDT 2009
>>>>> "Joaquim" == Joaquim SONGTKLP <test_071009 em hotmail.com> writes:
Joaquim> Amigos, boa noite Está vulgar?
Joaquim> my $url = "www.google.com.br";
Joaquim> my $gw1 = '10.10.10.1';
Joaquim> my $gw2 = '192.168.0.1';
Joaquim> my $p = Net::Ping->new( "icmp", 60, 64 );
Essas variáveis poderiam ser parametrizadas, dá uma olhada em um dos
módulos GetOpt do CPAN.
Joaquim> open( N, "route |")
Evite usar barewords como filehandles, use um escalar, isso evita
confusão em potencial com nomes de pacote e funções.
E também, sempre use a assinatura de três argumentos, isso evita que
alguém injete um modo não desejado no open, caso você resolva
parametrizar o nome do arquivo.
open(my($route), '-|', 'route')
Joaquim> @_ = split(/s+/, $_);
Evite atribuir a @_, esse array é reservado para parâmetros de subrotinas.
Joaquim> } else {
Joaquim> open( N, "route |") {
Joaquim> $_ = (<N>);
Joaquim> @_ = split(/s+/, $_);
Joaquim> qx(route del default gw $_[1]);
Joaquim> qx(route add default gw $gw2);
Joaquim> }
Esse trecho aqui é uma cópia do primeiro bloco do else, construa uma
subrotina e passe $gw1 ou $gw2 conforme for adequado. Além disso,
open é uma função que pode falhar, então sempre avalie o resultado.
sub add_default {
my($gw) = @_;
open( my($route), 'route |') or die "couldn't open 'route': $!";
my @in = split(/s+/, scalar <$route>);
qx(route del default gw $in[1]);
qx(route add default gw $gw);
}
--
Eden Cardim Need help with your Catalyst or DBIx::Class project?
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://edenc.vox.com/ http://www.shadowcat.co.uk/servers/
More information about the SaoPaulo-pm
mailing list