2017-05-18 8 views
1

나는 펄 프로그래밍에 새로운 오전 나는 사용자 입력에 대한 서브 루틴을 호출하는 것을 시도하고있다 :사용자 입력 (문자열)에 따라 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.

답변

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

에 결국 문제는 STDIN에서 <>을 사용하여 읽을 때 $tempCommand에 되돌아와 저장하는 값에 줄 바꿈 문자가 첨부된다는 것입니다. chomp() 기능으로 제거해야합니다.

chomp($tempCommand = <>);