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…我误读了原始代码,认为只有一个值被目标读入。我现在更正了我的回答