#!/usr/bin/env perl # Perl weekly challenge 097 # Task 1: Caesar Cipher # # See https://wlmb.github.io/2021/01/25/PWC097/#task-1-caesar-cipher use warnings; use strict; use v5.12; use Scalar::Util qw(looks_like_number); sub usage { say <$plain[($_-$displacement)%@plain])} 0..@plain-1; my $translated=join '', map {$translation_of{$_}//$_} split '', $string; say "Input: \"$string\" $displacement\nOutput: \"$translated\"\n"; say "Plain:\t", @plain, "\n", "Cipher:\t", join '', @translation_of{sort keys %translation_of}, "\n", "Displacement:\t$displacement\n", "Plaintext:\t$string\n", "Ciphertext:\t$translated",