2014-03-27 68 views
2

我想寫一個循環,將確定用戶輸入是否匹配字符串$ rev。無論我爲$ seq輸入什麼內容,它都會返回它不匹配,即使它實際上是。我究竟做錯了什麼?謝謝你的幫助。Perl - 簡單的如果陳述不會工作

$seq = <>; 
$rev = "string"; 
if ($seq eq $rev){ 
    printf("The two strings match.\n"); 
} 
else { 
    printf("The two strings do NOT match.\n"); 
} 
+4

你總是鍵入一個新行,但不要將其刪除。 'chomp'。 – ikegami

+6

如果您不需要'printf'的額外功能,則應該使用'print'。 – TLP

回答

8

您需要chomp您的輸入刪除換行符:

$seq = <>; 
chomp $seq; 
$rev = "string"; 
if ($seq eq $rev){ 
    print "The two strings match.\n"; 
} 
else { 
    print "The two strings do NOT match.\n"; 
} 

此外,使用print代替printf,因爲你沒有指定的格式。

1

改變你的代碼

$seq = <>; 

chomp($seq = <>);