救命啊!代码解析!高分送上!
小弟没用过perl,现在上头让我解析这代码,哪位大哥能帮我一行行讲讲啊!!
谢谢阿
sub cacheclear {
my ($targethost, $diffdata, $servicename, $CDir, $PDir) = @_;
foreach my $i (sort keys %{$diffdata}) {
#foreach my $j (keys %{$diffdata{$i}}) {
foreach my $j (keys %{$diffdata{$i}}) {
if ($diffdata{$i}{$j} !~ /^\s*$/) {
my @url = ();
if ($j eq "NEWSITEMID ") {
push (@url, "$CDir?n=$diffdata{$i}{$j} ");
push (@url, "$CDir?ichiran=True&n=$diffdata{$i}{$j} ");
} else {
push (@url, "$diffdata{$i}{$j} ");
}
print DEBUG "$i : $j : $diffdata{$i}{$j}\n ";
foreach my $u (@url) {
my $sock = IO::Socket::INET-> new(PeerAddr => "$targethost ",
PeerPort => 80,
Proto => 'tcp ',
Timeout => 10);
if (! $sock){
return;
}
print "Connected $targethost:80\n " if $debug;
print "GET ||$u|| HTTP/1.0\r\n " if $debug;
print DEBUG "$$ : $targethost : GET ||$u|| HTTP/1.0\r\n " if $debug;
print $sock "GET $u HTTP/1.0\r\n ";
print $sock "Host: $servicename\r\n ";
print $sock "Cache-Control: no-cache\r\n\r\n ";
while( <$sock> ){
####
}
close ($sock)
}
}
}
}
}
[解决办法]
支持
[解决办法]
sub cacheclear { #定义函数
my ($targethost, $diffdata, $servicename, $CDir, $PDir) = @_;#定义变量
foreach my $i (sort keys %{$diffdata}) {# 遍历哈希表
#foreach my $j (keys %{$diffdata{$i}}) {
foreach my $j (keys %{$diffdata{$i}}) {
if ($diffdata{$i}{$j} !~ /^\s*$/) {#正则表达式匹配哈希表中数据
my @url = ();#定义数组
if ($j eq "NEWSITEMID ") {
push (@url, "$CDir?n=$diffdata{$i}{$j} ");#在数组@url的最后附加新的元素 $CDir?n=$diffdata{$i}{$j}到数组@url中。
push (@url, "$CDir?ichiran=True&n=$diffdata{$i}{$j} ");
} else {
push (@url, "$diffdata{$i}{$j} ");
}
print DEBUG "$i : $j : $diffdata{$i}{$j}\n ";#打印
foreach my $u (@url) {#遍历@url数组
my $sock = IO::Socket::INET-> new(PeerAddr => "$targethost ",
PeerPort => 80,
Proto => 'tcp ',
Timeout => 10);#调用IO::Socket::INET包创建类的实例
if (! $sock){
return;
}
print "Connected $targethost:80\n " if $debug;
print "GET ||$u|| HTTP/1.0\r\n " if $debug;
print DEBUG "$$ : $targethost : GET ||$u|| HTTP/1.0\r\n " if $debug;
print $sock "GET $u HTTP/1.0\r\n ";
print $sock "Host: $servicename\r\n ";
print $sock "Cache-Control: no-cache\r\n\r\n ";
while( <$sock> ){#遍历文件行内容
####
}
close ($sock)#关闭文件句柄
}
}
}
}
}