【发布时间】:2014-05-25 00:48:53
【问题描述】:
我正在尝试编写一个代码,该代码将使用基本的循环移位密码对字母进行加密,同时保留任何不是字母的字符。我试图通过使用为每个字母找到新值的 sub 来做到这一点。当我现在运行代码时,它会格式化结果,因此每个加密字母之间都有一个空格,而不是保留原始格式。我也不能得到只有小写字母的结果。
sub encrypter {
my $letter = shift @_;
if ($letter =~ m/^[a-zA-Z]/) {
$letter =~ y/N-ZA-Mn-za-m/A-Za-z/;
return $letter;
}
else {
return lc($letter);
}
}
print "Input string to be encrypted: ";
my $input = <STDIN>;
chomp $input;
print "$input # USER INPUT\n";
my @inputArray = split (//, $input);
my $i = 0;
my @encryptedArray;
for ($i = 0; $i <= $#inputArray; $i++) {
$encryptedArray[$i] = encrypter($inputArray[$i]);
}
print "@encryptedArray # OUTPUT\n";
【问题讨论】:
标签: string perl encryption split