【发布时间】:2012-02-10 05:15:05
【问题描述】:
do
{
print"CHOOSE ANY OF THE FOLLOWING OPTIONS:\n";
print"==========================================\n";
print"1-LOGIN & LOGOUT\n";
print"2-MAKE CALL\n";
print"3-EXIT\n";
print"==========================================\n";
print("\nENTER YOUR OPTION: ");
$option=<>;
if($option==1)
{
print("IN THE LOGIN & LOGOUT SCENARIO\n");
&Login_logout();
}
elsif($option==2)
{
print("IN THE MAKE CALL SCENARIO\n");
}
elsif($option==3)
{
print("\nEXITING...\n");
exit(0);
}
else
{
print"\nINSERT A VALID OPTION...!!!\n";
}
}while(1);
这里的子程序 Login_logout() 调用一个 SIPp 实例(命令行实例)。在命令行实例成功完成后,标量 $option 获取一些垃圾值并达到 else 条件并打印行“INSERT A VALID OPTION...!!!”。这个过程会一直持续下去,直到强制关闭 Konsole。
谁能告诉我剧本哪里错了。
【问题讨论】:
-
$option 需要一些垃圾值?什么垃圾值?
-
不知道需要什么,我试图打印出来但什么也没有显示。可能是当命令行退出时它返回一些值并且 $option 将其作为 $ARG[0] 值。我可能不确定。
-
我试过你的代码(删除了对
Login_logout()的调用),它对我来说很好用。Login_logout()是做什么的?您能否更新您的帖子以包含其来源? -
Login_logout 实际上调用了一个 SIPp 实例。实例是“./sipp -sf Reg_UAS.xml -i my_host_ip -p 5060”。为此,您必须在您的机器上安装 SIPp。