my $repeats = (length($cipher_text) / length($pass)) + 1; my $pass_stream = substr($pass x $repeats, 0, length($cipher_text)); my $plain_text = $cipher_text ^ $pass_stream;