2017-05-18 3 views
1

私はperlのプログラミングに新しいですし、私はユーザーの入力に対するサブルーチンを呼び出すようにしようとしています:ユーザ入力(文字列)に従って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 = <>); 
関連する問題