У меня возникли трудности с выяснением того, как проверять ввод пользователя, который соответствует строке, за которой следуют пользовательские аргументы, всегда идет в оператор my else.Если строка соответствия оператора и аргументы пользователя
elsif ($user_input eq "sort by" && $ARGV[2])
{
print"this is working";
#use arguments to sort by user command
print $ARGV[2], "\n\n\n";
}
else #user validation
{
print "Error, please re-enter command \n\n";
&Menu;
}`
Вы забывая 'chomp' пользовательского ввода? – squiguy
Если вы хотите склеить строки вместе, используйте оператор конкатенации '.', как в' $ user_input eq "sort by". $ ARGV [2] '. (Обратите внимание на пробел после 'by'.) – michaelb958
Пожалуйста, сообщите нам, какой ввод вы пробовали, что дает неожиданные результаты и как заполняется' $ user_input'. – darch