У меня есть следующий код:
Net::Pcap::loop($pcap, -1, \&proccess_packets, '');
sub proccess_packets {
my ($user_data, $header, $packet) = @_;
my $ip_packet = NetPacket::Ethernet::strip($packet);
my $tcp_packet = NetPacket::IP::strip($ip_packet);
my $tcp_obj = NetPacket::TCP->decode($tcp_packet);
if ($tcp_obj->{data}) {
my $request = HTTP::Request->parse($tcp_obj->{data});
my %headers = split /[:\n]/, $request->headers_as_string;
print Dumper($headers{'Accept-Language'}); # this line is printed
print $headers{'Accept-Language'}; # this line is not printed
}
}
Может ли кто-нибудь объяснить, почему напечатана эта строка:
print Dumper($headers{'Accept-Language'});
и почему это не напечатано:
print $headers{'Accept-Language'};
В чем здесь может быть проблема? Может ли кто-нибудь дать совет? Связано ли это с механизмом обратного вызова libpcap?