Bifid cipher: Difference between revisions

Content added Content deleted
(Added Perl)
m (→‎{{header|Perl}}: consolidate two lists into a single array)
Line 184: Line 184:


sub encrypt ($text, %P) {
sub encrypt ($text, %P) {
my(%I, @c1, @c2, $encrypted);
my(%I, @c, $encrypted);
for my($k,$v) (%P) { $I{$v} = $k }
for my($k,$v) (%P) { $I{$v} = $k }
for (split '', $text =~ s/\s//gr) {
for my ($n,$char) (indexed split '', ($text =~ s/\s//gr)) {
for my($i,$j) (split ' ', $P{$_}) { push @c1, $i; push @c2, $j }
for my($i,$j) (split ' ', $P{$char}) { $c[0][$n] = $i; $c[1][$n] = $j }
}
}
for my($j,$i) (@c2, @c1) { $encrypted .= $I{"$i $j"} }
for my($i,$j) (@c[1]->@*, @c[0]->@*) { $encrypted .= $I{"$j $i"} }
$encrypted
$encrypted
}
}