Perl Cant使用URI :: QueryParam输入for循环

时间:2013-03-13 15:26:09

标签: perl uri query-parameters

我有以下代码:

use strict;
use warnings;
use URI;
use URI::QueryParam;

open (URLS, "<urls.txt");
open (EXTRAPARAMS, "<extraparams.txt");

my @words = (<EXTRAPARAMS>);  

while ( my $URL = <URLS>) {
        my $uri = URI->new($URL);
        print "GETS THIS FAR\n";
        print "$uri\n";

    for my $key ($uri->query_param) {
         print "CANT GET HERE\n";                        #why does it not get here?
         my $org = $uri->query_param($key);
         for my $word (@words) {
             for ("$org$word", $word, "$word$org") {
                 $uri->query_param($key, $_);
                 print $uri->as_string, $/;
             }
         }
         $uri->query_param($key, $org);
    }
}

我遇到的问题

我能够从URLS文本文件中读取每个URL并打印它们,但由于某种原因我似乎无法进入for循环。

是否有一些明显的东西我忽视或没有做因为我似乎无法解决为什么它没有到达那里?

它可能与URI :: QueryParam的东西无关,只是我犯了一个错误,但我找不到它。

我已经查看了URI :: QueryParam的文档,就我所看到的$keyquery_param部分而言,所有内容似乎都应该被编写/格式化。 ,所以我不知道什么是错的?

非常感谢您的帮助,非常感谢

1 个答案:

答案 0 :(得分:1)

这种代码的简化工作正常:

use strict;
use warnings;
use URI;
use URI::QueryParam;

my $uri = URI->new("http://www.foo.com?bar=baz&sproing=blargh");

for my $key ($uri->query_param) {
     print "$key\n";
}

输出:

bar
sproing

问题几乎可以肯定是您的数据:您的网址格式不正确或没有任何参数。