Hi all, i have attempted to convert javascript to perl with no luck, my perl knowlegde isnt very good to say the least!
I'll show you the javascript code, and then the perl code.
var text = 'encoded text';
var prime = 0;
var comp = 0;
var text;
var line = "";
for (i = 0; i < text.length; i++) {
var c = text.charAt(i);
var comparison =parseInt(c);
if (comparison) {
var n = Number(c);
if ((n != 1) && (n != 0)) {
if (isprime(n)) {
prime += n;
}
if (!isprime(n)) {
comp += n;
}
}
} else if ((line.length < 25) && (comparison != 1)) {
c = c.charCodeAt(0);
c++;
c = c.toString();
temp = c;
c = String.fromCharCode(temp);
line += c;
}
}
var sum = 1 * prime * comp;
line += sum;
WScript.Echo(line);
function isprime(n) {
var primer = true;
var ValidChars = "2357";
var str = n.toString();
if (ValidChars.indexOf(str.charCodeAt(0)) == -1) {
primer = false;
}
return primer;
}
now perl
sub isprime($) {
my $num = $_[1];
$primer = 1;
$ValidChars = "2357";
$str = $num;
if (index($ValidChars, ord(substr $str, 0, 1)) == 1) {
$primer = 0;
}
return $primer;
}
my ($text, $prime, $comp, $line);
$text = "the encoded text";
for ($i = 0; $i < $text.length; $i++) {
$c = substr($text, $i, 1);
($comparison) = $c =~ s/[^0-9]//g;
if ($comparison) {
$n = $c;
if (($n != 1) && ($n != 0)) {
if (isprime($n)) {
$prime += $n;
}
if (!isprime($n)) {
$comp += $n;
}
}
$a=$line.length;
} elsif (($a < 25) && ($comparison != 1)) {
$c = ord(0);
$c++;
$temp = $c;
$c = chr($temp);
$line += $c;
}
}
$sum = 1 * $prime * $comp;
$line += $sum;
print $line;
<>;
thanks for any help.