Tengo otro pedazito de código (se nota que estoy practicando a diario)
Os pego el código y lo que me devuelve:
Using perl Syntax Highlighting
#!/usr/bin/perl
print "Introduce el radio para poder calcularte la circunferencia\n";
chomp (my @radio = <STDIN>);
my $pi = "3.141516";
@malos = "";
@buenos = "";
foreach $radio(sort @radio)
{
if ($radio < 0)
{
push @malos,$radio;
}
else
{
push @buenos,$radio;
}
}
foreach $buenos(sort @buenos) {
my $circunferencia = $buenos * 2 * $pi;
print "Estos son las circunferencias buenas: $circunferencia\n";
}
if (@malos == ""){
print "La verdad que no la has cagado con ningun numero\n";
}
else {
print "estos son los valores que no me valen: @malos\n";
}
print "Introduce el radio para poder calcularte la circunferencia\n";
chomp (my @radio = <STDIN>);
my $pi = "3.141516";
@malos = "";
@buenos = "";
foreach $radio(sort @radio)
{
if ($radio < 0)
{
push @malos,$radio;
}
else
{
push @buenos,$radio;
}
}
foreach $buenos(sort @buenos) {
my $circunferencia = $buenos * 2 * $pi;
print "Estos son las circunferencias buenas: $circunferencia\n";
}
if (@malos == ""){
print "La verdad que no la has cagado con ningun numero\n";
}
else {
print "estos son los valores que no me valen: @malos\n";
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
y me devuelve:
- Código: Seleccionar todo
niko@Beelzebub:~$ sudo ./primerperl.pl
Introduce el radio para poder calcularte la circunferencia
10
12
-5
0
Estos son las circunferencias buenas: 0
Estos son las circunferencias buenas: 0
Estos son las circunferencias buenas: 62.83032
Estos son las circunferencias buenas: 75.396384
estos son los valores que no me valen: -5
Como veis sí que me detecta que el valor -5 es menor a 0 y por eso lo coloca en el array @malos, pero no entiendo por qué me pinta cuatro veces los valores que están en el array @buenos, ya que solo deberían estar los valores mayores de 0, y de los que he escrito, solo 2 son mayores de 0... ¿o quizás 0 también lo metería? pero aun siendo así, no me tendría que aparecer la cuarta vez...
¡Todo un misterio!
¡Gracias a todos por vuestra ayuda!