我正在尝试为twitter开发桌面应用程序。出于授权目的,我使用模块Browser::Open
打开默认浏览器系统,该系统提供最终用户需要输入到桌面应用程序的引脚。
我使用fork打开浏览器,脚本不是在授权后停止接受引脚的输入,而在其他情况下用户需要在输入引脚之前关闭浏览器。
这是代码。 (有和没有分叉)
unless ( $nt->authorized ) {
print "authorization of the url";
my $url = $nt->get_authorization_url;
print "Authorize this app at ", $nt->get_authorization_url, " and enter the PIN#\n";
if (1) {
my $pid = fork();
print "\$pid : $pid";
if ($pid) {
open_browser($url);
push @childId,$pid;
}
} else {
open_browser($url);
}
print "please enter the pin u got on screen\n";
my $pin = <STDIN>; #wait for input
chomp $pin;
#`kill -9 $pid`;
}
我可以通过任何方式管理这些活动
答案 0 :(得分:1)
$pid
和子进程中的0
都是正确的,所以我认为你的逻辑应该是
if ($pid) {
# parent
push @childId,$pid;
} else {
# child
open_browser($url);
exit; # <------ DON'T FORGET TO EXIT THE CHILD
}