Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 字符串中未初始化值$site的使用_Perl - Fatal编程技术网

Perl 字符串中未初始化值$site的使用

Perl 字符串中未初始化值$site的使用,perl,Perl,'我正在尝试执行此代码,但它已给我以下错误: 在C:\Users\USER\Desktop\script.pl第35行的字符串中使用未初始化值$site。 #!/usr/bin/perl use LWP::UserAgent; use File::Slurp; use warnings; use strict; use HTTP::Request; open (THETARGET, "<list.txt") || die "[-] Can't open the file"; my @T

'我正在尝试执行此代码,但它已给我以下错误:
在C:\Users\USER\Desktop\script.pl第35行的字符串中使用未初始化值$site。

#!/usr/bin/perl

use LWP::UserAgent;
use File::Slurp;
use warnings;
use strict;
use HTTP::Request;

open (THETARGET, "<list.txt") || die "[-] Can't open the file";
my @TARGETS = <THETARGET>;
close THETARGET;
my $link=$#TARGETS + 1;

OUTER: foreach my $site(@TARGETS){
    chomp($site);
}

my $ua = LWP::UserAgent->new;
$ua->timeout(10);
my $url = my $site;
my $picture = "teest.png";
my %args;
my $field_name = "file[]";
my $buf ;
my $buf_ref = $args{'buf'} || \$buf ;


my $value = read_file( $picture , binmode => ':raw' , scalar_ref => 1 );

my $response = $ua->post( $url,
            Content_Type => 'form-data',
            Content => [ $field_name => ["$picture"] ]
            );
print "$site";
#/usr/bin/perl
使用LWP::UserAgent;
使用File::Slurp;
使用警告;
严格使用;
使用HTTP::请求;

打开(目标,"我认为您期望的是$site的值从for循环中结转,但是因为它是在for循环中定义的,所以它的范围仅限于该循环。也许您的目的是让下面的所有代码也在该循环中。否则,$site的值在被定义后的两行右括号中不再存在创造,你的台词

my $url = my $site;
然后创建一个新变量$site(未定义),该未定义值用于设置$url,因此它也是未定义的

my $url = $site;
然后添加额外的“my”以解决先前的错误


我希望这对您有所帮助。

您发布的代码没有35行。请提供实际提供错误的代码。
我的$site
创建一个初始化为
undef
的新标量。您将此标量分配给
$url
,并将其设置为
undef
。然后使用
$url
,就像它包含url一样,但事实并非如此。您正在使用foreach声明
$site
。for循环只执行了
$site
的一部分,就是这样。
%args
声明了,但没有使用,
$buf
$buf\u ref
等。此代码有很多错误。您对问题的解释很好,但您提出的解决方案不起作用。您是否这样做了试一试?为什么你认为循环只会迭代一次?你是对的,@melpomene…我误读了原始代码,认为只有一个值被目标读入。我现在更正了我的回答