-
Exercise 5.1
-
Use a loop to write a nonhalting program. The conditional must always
evaluate to true, every time through the loop.
Note that some systems will catch that you're in an infinite
loop and will stop the program automatically. You will stop your
program differently, depending on which operating system you use.
Ctrl-C works on Unix and Linux, a Windows MS-DOS command window, or a
MacOS X shell window.
-
Exercise 5.2
-
Prompt the user to enter two (short) strings of DNA. Concatenate the
two strings of DNA by appending the second to the first using the
.= assignment operator. Print the two strings as
concatenated, and then print the second string lined up over its copy
at the end of the concatenated strings. For example, if the input
strings are AAAA and TTTT,
print:
AAAATTTT
TTTT
-
Exercise 5.3
-
Write a program that prints all the numbers from 1 to 100. Your
program should have much fewer than 100 lines of code!
-
Exercise 5.4
-
Write a program to calculate the reverse complement of a strand of
DNA. Do not use the s/// or the
tr functions. Use the
substr function, and examine each base one at a
time in the original while you build up the reverse complement.
(Hint: you might find it easier to examine the original right to
left, rather than left to right, although either is possible.)
-
Exercise 5.5
-
Write a program to report on the percentage of hydrophobic amino
acids in a protein sequence. (To find which amino acids are
hydrophobic, consult any introductory text on proteins, molecular
biology, or cell biology. You will find information sources in Appendix A.)
-
Exercise 5.6
-
Write a program that checks if two strings given as arguments are
reverse complements of each other. Use the Perl built-in functions
split, pop,
shift, and eq
(eq actually an operator).
-
Exercise 5.7
-
Write a program to report how GC-rich some sequence is. (In other
words, just give the percentage of G and C in the DNA.)
-
Exercise 5.8
-
Modify Example 5-3 to not only find motifs by
regular expressions but to print out the motif that was found. For
example, if you search, using regular expressions, for the motif
EE.*EE, your program should print EETVKNDEE. You can use the special
variable $&. After a successful pattern match,
this special variable is set to hold the pattern that was matched.
-
Exercise 5.9
-
Write a program that switches two bases in a DNA string at specified
positions. (Hint: you can use the Perl functions
substr or slice.
-
Exercise 5.10
-
Write a program that writes a temporary file and then deletes it. The
unlink function removes a file: just say, for
example:
unlink "tmpfile";