i don't know if this is faster or slower, but it seems like it would be easier to maintain if you built %DALPHA from %CALPHA and the same for %DDICT
my %CALPHA = ( 'A' => [ 'wanker', 'tweet', 'bonk' ], 'B' => [ 'ping', 'zilch' ], ... ); my %DALPHA; foreach my $k ( keys %CALPHA ) { foreach my $l ( @{$CALPHA{$k}} ) { $DALPHA{$l} = $k; } }
then you just have to update one hash instead of two
if updates are frequent go a step further and pull them in from a DATA section.
... while (my $l = <DATA>) { my ($plain,$crypt) = split /\s+/, $l; %CDICT{$plain} = $crypt; %DDICT{$crypt} = $plain; } ... __DATA__ CORPS DIN-NEH-IH DIVISION ASHIH-HI REGIMENT TABAHA ...
you may have to use a different delimiter depending on your code.
HOT HEAD:DEF-DUM-DEE CRUISE MISSILE:BOOM-BOOM
then you can add a new word way easy...
echo "JAR HEAD:UG-GO-GRUNT" >> /path/to/Crypt/Navajo.pmcool anyways... now i can decode the blood-stained documents that mysteriously turned up in my mailbox
Update: merlyn is correct, i meant to say $CDICT{$plain}=$crypt; $DDICT{$crypt}=$plain;
In reply to Re: Crypt::Navajo
by zengargoyle
in thread Crypt::Navajo
by Cybercosis
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |