• Publicidad

Problemas con la función split

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problemas con la función split

Notapor erjuak » 2013-04-08 08:47 @407

Hola, tengo un problema que, la verdad, no sé cómo resolverlo.

Tengo un script que lanza en una base de datos PostgreSQL una función que da las siguientes salidas:

01: Fichero no encontrado :/data/interfaces/salida/
o
00: El proceso ha finalizado Ok

Dependiendo de un código u otro, pues tengo que hacer una serie de cosas.
En un principio, estos códigos los saco con la siguiente subrutina:

my @r_tpfr_descargavisitas = &consultabbdd ($nombrebbdd,$dbhost,$dbuser,$dbpass,$consulta);

El resultado lo almaceno en un array de la siguiente forma:

my @cod_salida = split(":",$r_tpfr_descargavisitas[0]);

(Troceo la salida diviéndolo en dos con los puntos que vienen a continuación)

Entonces creo:

$kk = $cod_salida[0];

(Aquí se supone que almaceno el dato, o 00 o 01, en la variable $kk)

Ahora si hago un if() para tratar la variable:

my $opcion = 0;
if ($kk="00") {
$opcion = 1}
else {
$opcion =2
}
print "$opcion\n";


Si ejecuto el script:

devolviendome el código:
01: Fichero no encontrado :/data/interfaces/salida/

./script.pl
01 -> Codigo Spliteado 01
1 -> $opcion = 1.

devolviendome el código:
00: El proceso ha finalizado Ok


00 - Codigo spliteado 00
1 -> $opcion = 1



Creo que el problema es que no estoy troceando bien el código salida por lo que no solamente almaceno un 00 o un 01.

¿Alguien me podría dar alguna sugerencia?

Gracias
erjuak
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2013-03-07 11:52 @536

Publicidad

Re: Problemas con la función split

Notapor erjuak » 2013-04-08 09:29 @437

Hola, me respondo a mi mismo.

El problema era los operadores que usaba en la sentencia if.
Como estaba usando variables tipo cadena, estaba fallando porque los operadores que estaba usando era para variables numéricas, por tanto ese era el problema que me estaba dando.

Al poner el operador "eq" y sustituirlo por "=".

Así ha funcionado correctamente.

Perdón por mi ignorancia supina.

Muchas Gracias de todas formas.
erjuak
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2013-03-07 11:52 @536


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado

cron