如何根据用户输入(字符串)在perl中调用子程序?

How to call subroutine in perl according to user input(string)?

我是 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()}

调用总是以 else 条件结束,即使 我输入A或R。

您的问题是,当您使用 <>STDIN 读取时,您返回并存储在 $tempCommand 中的值将附加一个换行符。您需要使用 chomp() 函数将其删除。

chomp($tempCommand = <>);

您需要从用户输入中截取换行符,它应该可以工作:

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\"";
}