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

时间:2017-05-18 12:12:38

标签: perl if-statement user-input subroutine

我是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。

2 个答案:

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