Gracias!
Fallo "==". Teien que ir "eq" (en php es el mismo para string o numericos). Una cosa mas para aprender.
Si me puedes echar un vistazo a esta funcion.
Estan todas las variables iniciadas, los bucles serrados y peta. con el mismo error.
Código PHP:
sub Criptar{
my $self=shift;
my $param1 = shift;
my $encrypt = "";
for (my $i=0;$i<length($param1);$i++) {
my $caracter = substr($param1, $i, 1);
$encrypt .= $caracter ^ $self->{key}[$i % length($self->{key})];
$encrypt = encode_base64($encrypt, "");
return $encrypt;
}
}
Un cordial saludo, VIctoria
Gracias ya lo resolvi!
Quedaria asi
sub Criptar{
my $self=shift;
my $param1 = shift; #string to encode
my $encrypt = "";
my $part = "";
for (my $i=0;$i<length($param1);$i++) {
$part = substr($self->{key}, $i % length($self->{key}), 1);
$encrypt = $encrypt . ((substr($param1, $i, 1) ^ $part));
}
$encrypt = encode_base64($encrypt, "");
return $encrypt;
}
El perl no puede devolver una parte de string de esta forma
$string = "asdasa";
print ($string[2]); // peta porque no puede!
El php devolve "d".
Un cordial saludo, Victoria