我是perl编程的新手,我正在尝试调用关于用户输入的子例程:
print "Would you like to [A]dd a new student or [R]eturn to the previous menu?";
$tempCommand = <>;
if($tempCommand eq "A") {addStudent()}
elsif($tempCommand eq "R") {mainmenu()}
else{mainmenu()}
即使是,否则呼叫总是以其他条件结束 我输入A或R。
答案 0 :(得分:3)
您的问题是,当您使用STDIN
从<>
进行阅读时,您获得并存储在$tempCommand
中的值将附加一个换行符。您需要使用chomp()
函数删除它。
chomp($tempCommand = <>);
答案 1 :(得分:3)
您需要从用户输入中选择换行符,它应该有效:
use strict;
use warnings;
print "Would you like to [A]dd a new student or [R]eturn to the previous menu? ";
chomp(my $tempCommand = <>);
if ($tempCommand eq "A") {
addStudent()
}
elsif ($tempCommand eq "R") {
mainmenu()
}
else {
mainmenu()
}
sub addStudent {
print "In sub \"Addstudent\"";
}
sub mainmenu {
print "In sub \"Mainmenu\"";
}