zeroclickinfo-goodies/lib/DDG/Goodie/Atbash.pm

44 lines
940 B
Perl
Raw Permalink Normal View History

package DDG::Goodie::Atbash;
# ABSTRACT: A simple substitution cipher using a reversed alphabet
use strict;
use DDG::Goodie;
triggers start => 'atbash';
2014-10-09 06:26:55 -07:00
zci answer_type => 'atbash';
zci is_cached => 1;
handle remainder => sub {
2014-10-28 11:36:15 -07:00
2014-10-09 06:26:55 -07:00
my $in_string = $_;
return unless $in_string;
my $result;
foreach my $char (split //, $in_string) {
if ($char =~ /([a-z])/) {
# Substitute lowercase characters
$char = chr(219 - ord $1);
} elsif ($char =~ /([A-Z])/) {
# Substitute uppercase characters
$char = chr(155 - ord $1);
}
$result .= $char;
}
2014-10-09 06:26:55 -07:00
2015-12-27 03:22:52 -08:00
return "Atbash: $result",
structured_answer => {
data => {
title => "$result",
subtitle => "Atbash: $in_string"
},
templates => {
group => 'text',
moreAt => 0
}
2014-10-09 06:26:55 -07:00
};
};
1;