我不知道我可能是做錯了這個簡單的交易,但它不工作:爲什麼在比較Perl中的輸入行時遇到問題?
print "OK? (y or n)\n";
$ans = <>;
print "\n";
if($ans eq "y"){print $ans;}
我基本上想知道如何測試用戶輸入。這個小小的代碼不適合我。如果用戶輸入了y
,我只是試圖打印$ans
。
有什麼建議嗎?
編輯: - 我也曾嘗試單引號
我不知道我可能是做錯了這個簡單的交易,但它不工作:爲什麼在比較Perl中的輸入行時遇到問題?
print "OK? (y or n)\n";
$ans = <>;
print "\n";
if($ans eq "y"){print $ans;}
我基本上想知道如何測試用戶輸入。這個小小的代碼不適合我。如果用戶輸入了y
,我只是試圖打印$ans
。
有什麼建議嗎?
編輯: - 我也曾嘗試單引號
你正在做一件事情錯了。 (1)當您想要<STDIN>時,請不要使用鑽石操作員(<>)。鑽石操作員也將讀取@ARGV中的文件,這可能不需要。
(2)$ ans永遠不會等於「y」,除非您先踩下它。它最後會有一個換行符。
雖然你直接的問題已經回答了,你可能想看看像替代
一個解決所有的神祕內容變量:
use Data::Dumper;
$Data::Dumper::Useqq = 1; # show newlines, tabs, etc in visible form
$Data::Dumper::Terse = 1;
print '$ans is really: ', Dumper($ans);
謝謝,爲什麼eff會在\ n上標記?因爲我打入輸入註冊我的答案?它應該自動chomp,如果你問我... – CheeseConQueso 2009-03-03 21:32:41