Я работаю на некоторых ДНК (A, T, C и G с шансом U придачей)
У меня сейчас действительно длинная строка полных ДНК неопределенных длина. У меня есть код для нуклеотидных оснований.
%nucleotide_bases = (A => Adenine,
T => Thymine,
G => Guanine,
C => Cytosine);
$nucleotide_bases{'U'} = 'This is a RNA base called Uracil';#T=U for RNA
Теперь все, что мне нужно сделать, это положить какой-то цикл, чтобы читать каждый отдельный символ из строки. Поскольку этот код предназначен для студентов, он должен быть простым. Я начал использовать perl сам несколько недель назад, Java до этого.
Строка ($ string1 it's called) должна печатать ее полное имя, когда каждая отдельная базовая пара считывается (по одному). Поэтому, когда строка говорит ATATCGCG
Вывод на экран должен прочитать: аденина Тимина аденина Тимина цитозина гуанина цитозина гуанина
Если это слишком сложно сделать из строки , Я могу использовать массив как отправную точку. Большое спасибо за вашу помощь.
Отличные ответы. Сейчас все будет готово.
Другой вопрос, который у меня был, состоял в том, чтобы убедиться, что пользователь может ввести только базы ДНК (A, T, C & G). Я думаю, что это называется проверкой ввода.
print "Please enter your first DNA sequence now: \n";
$userinput1=<>;
chomp $userinput1;
Как вы можете добавить туда проверку валидации? Первый запрос печати всегда должен быть повторно запрошен, если не выполнены условия.
Я знаю, что нужно что-то вроде
if($userinput1 ne 'a' or 't' or 'c' or 'g') {
print "Please enter DNA only (A, T, C or G)";
}
Я не совсем уверен, как вернуться к первоначальному заявлению печати
Вы можете использовать 'для моего $ char (split //, $ string)', чтобы сэкономить на некотором типе, и IMO сделает ваш код более четким. – TLP