Ich benutze Perl für ein Skript, das Eingabe als zwei kurze DNA-Stränge aufnimmt. Als eine Ausgabe verkette ich die zwei Zeichenketten-Zeichenketten und drucke dann die zweite Zeichenkette, die über ihrer Kopie am Ende der verketteten Zeichenkette aufgereiht ist. Zum Beispiel: Wenn Eingabestring ist AAAA und TTTTT dann Druck:Warum macht Perl's /// was ich will?
AAAAATTTTT
TTTTT
Ich weiß, es gibt auch andere Möglichkeiten, dies zu tun, aber ich bin neugierig, warum meine Verwendung tr /// funktioniert nicht.
Der Code für das Programm ist:
use strict;
use warnings;
print "enter a DNA sequence \n";
$DNA1=<>; #<> shorthand for STDIN
$DNA1=~ s/\r?\n?$//;
print $DNA1 "\n\n";
print "enter second DNA sequence \n";
$DNA2=<>;
$DNA2=~ s/\r?\n?$//;
print $DNA2 "\n\n";
$DNA= join("",($DNA1,$DNA2));
print "Both DNA sequences are \"$DNA\" \n\n";
$DNA3=$DNA1;
$DNA3=~ tr/ATCGatcg//;
print $DNA3 "\n\n";
$DNA4= join("",($DNA3,$DNA2));
print $DNA4 "\n\n";
exit;
Ist das nur schlecht formatiert oder sieht Perls Syntaxformat tatsächlich so aus? –
ist nicht "$ DNA1 = ~ s/\ r? \ N? $ //;" das gleiche wie "chomp $ DNA1"? –
ja "$ DNA1 = ~ s/\ r? \ N? $ //;" ist das gleiche wie "chomp $ DNA. aber Perl 4 und niedrigere Versionen nicht chomp unterstützen, so ist es eine Alternative. und meine Maschine hat Perl 4 installiert. – shubster