怎么没人回复呢 奇怪
On 7月29日, 下午7时27分, perlw01f <p3r1w...@gmail.com> wrote:
> 问题同http://www.perlmonks.org/?node_id=783017一样 就直接照搬那人的了
> 在ChinaUnix.net也有发过帖子 不知为何无人回应
>
> 无cookie情况下输入网站 并点击下载 图片下载下来了
> 但是
> windows 对话框 Perl Command Line Interpreter 遇到问题需要关闭。我们对此引起的不便表示抱歉。
>
> perl
> 显示错误如下:
> Attempt to free non-existent shared string '_TK_RESULT_', Perl
> interpreter: 0x2e3642c at C:/Perl/lib/Tk.pm line 252.
> Attempt to free non-existent shared string '_TK_RESULT_',
> Perlinterpreter: 0x2e3642c at C:/Perl/lib/Tk/Widget.pm line 98
> duringglobal destruction.
> Free to wrong pool 2e33d20 not 284fb0 at C:/Perl/lib/Tk/Widget.pm line
> 98 during global destruction.
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> use threads;
> my $cks;
> my $url;
> my $filename;
> my $cks_enter;
> my $url_enter;
> my $fnm_enter;
>
> sub dd{
> my $thr1 = threads->new(\&d);
> $thr1->detach();
>
> }
>
> use Tk;
>
> my $mw = MainWindow->new();
> $mw->resizable( 0,0 );
> $mw->title("test");
>
> my $frame = $mw->Frame(-borderwidth => 2,-relief => 'groove')->pack();
> my $bttn = $mw->Button(-text => "Down",-command => \&dd)->pack(-side
> => 'left');
>
> $frame->Label(-text => 'Cookies:')->pack();
> $cks_enter = $frame->Entry(-textvariable => \$cks,-width => 50)->pack
> ();
>
> $frame->Label(-text => 'URL:')->pack();
> $url_enter = $frame->Entry(-textvariable => \$url)->pack(-expand => 1,
> -fill => 'x');
>
> $frame->Label(-text => 'Filename:')->pack();
> $fnm_enter = $frame->Entry(-textvariable => \$filename)->pack(-expand
> => 1, -fill => 'x');
> MainLoop;
>
> sub d {
>
> $cks = $cks_enter->get();
> chomp($cks);
> $url = $url_enter->get();
> chomp($url);
> $filename = $fnm_enter->get();
> chomp($filename);
> use LWP::UserAgent;
> my @headers = (
> 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; EN; rv:
> 1.9.0.11) Gecko/2009060215 Firefox/3.5',
> 'cookie' => "$cks",
> );
>
> my $ua = LWP::UserAgent->new();
> my $req = $ua->get($url,@headers);
> my $cont = $req->content;
> open PIC, ">$filename";
> binmode(PIC);
> print PIC "$cont\n";
> close PIC;
>
> }
>
> 疑问在这儿:
> 1. 此处的 threads 是指 生成并维持tk GUI需要一个threads, 而 下载 需要另外一个 是么?
> 2. 如程序中所示, 目前也是两个threads么? gui的这个没有声明 但是确实是存在的?
> 3. 错误信息中提到了 共享变量的问题,是指 $cks、$url、$filename、$cks_enter、$url_enter、
> $fnm_enter这些变量都需要shared么 因为 dd这个线程中和 产生的gui中都有用到这些变量或对象?还是说需要shared其他的变
> 量?
> 4. Thread:: Queue 此处需要使用么?
>
> 非常感谢
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论