У меня есть вопрос. Я надеюсь, что вы могли бы помочь?Perl WWW: Механизировать Доступ к данным в хеш-ссылке
Это последняя часть мне нужна помощь в понимании ссылок на хэши
Код:
my $content_lengths; # this is at the top
foreach my $url (# ... more stuff
# compare
if ($mech->response->header('Content-Length') != $content_length) {
print "$child_url: different content length: $content_length vs "
. $mech->response->header('Content-Length') . "!\n";
# store the urls that are found to have different content
# lengths to the base url only if the same url has not already been stored
$content_lengths->{$url}->{'different'}->{$child_url} = $mech->response->header('Content-Length');
} elsif ($mech->response->header('Content-Length') == $content_length) {
print "Content lengths are the same\n";
# store the urls that are found to have the same content length as the base
# url only if the same url has not already been stored
$content_lengths->{$url}->{'equal'}->{$child_url} = $mech->response->header('Content-Length');
}
Что это выглядело, как с помощью Data :: Dumper
$VAR1 = {
'http://www.superuser.com/' => {
'difference' => {
'http://www.superuser.com/questions' => '10735',
'http://www.superuser.com/faq' => '13095'
},
'equal' => {
'http://www.superuser.com/ ' => '20892'
}
},
'http://www.stackoverflow.com/' => {
'difference' => {
'http://www.stackoverflow.com/faq' => '13015',
'http://www.stackoverflow.com/questions' => '10506'
},
'equal' => {
'http://www.stackoverflow.com/ ' => '33362'
}
}
};
Мне нужна помощь с:
Мне нужна помощь в понимании различных способов доступа к различным частям в хеш-ссылке и их использовании для выполнения таких действий, как их печать.
Так, например, как я напечатать все $url
из ссылки хэш (т.е. от Data :: Dumper, который будет http://www.superuser.com/ и http://www.stackoverflow.com/)
и как я печатаю все$child_url
или частности один/подмножество от $child_url
и так далее?
Ваша помощь с этим очень ценится,
Большое спасибо
Привет, смогли бы вы показать мне, что код будет выглядеть для моих примеров, пожалуйста, как когда я, чтобы сделать 'foreach' используя ваш пример в качестве шаблона я получаю такие ошибки, как «Тип аргумента 1 для ключей должен быть хешем (а не разыменованием массива)»?спасибо за вашу помощь –
Я не могу получить некоторые данные, если я использую 'foreach my $ здесь (ключи% {$ content_lengths}) { print (" key is '$ here' \ n "); } '? но не когда я использую 'foreach my $ key (ключи (@ {$ content_lengths})) { print (" key is '$ key' \ n ");' }? –
@ perl-user, извините, что это была опечатка ... должно было быть 'keys (% {$ content_lengths})', как вы выяснили. Я обновил свой ответ выше. – Lucas