Я плохо знаком с Perl, и у меня есть проблема, это очень просто, но я не могу найти ответ при консалтинге с моей книгой Perl.
При печати результата
Dumper($request);
Я получаю следующий результат:
$VAR1 = bless( {
'_protocol' => 'HTTP/1.1',
'_content' => '',
'_uri' => bless( do{\(my $o = 'http://myawesomeserver.org:8081/counter/')}, 'URI::http' ),
'_headers' => bless( {
'user-agent' => 'Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9.0.4) Gecko/20080528 Epiphany/2.22 Firefox/3.0',
'connection' => 'keep-alive',
'cache-control' => 'max-age=0',
'keep-alive' => '300',
'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'accept-language' => 'en-us,en;q=0.5',
'accept-encoding' => 'gzip,deflate',
'host' => 'localhost:8081',
'accept-charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
}, 'HTTP::Headers' ),
'_method' => 'GET',
'_handle' => bless( \*Symbol::GEN0, 'FileHandle' )
}, 'HTTP::Server::Simple::Dispatched::Request' );
Как я могу получить доступ к значениям '_method' ('ДОБИРАЮТСЯ') или 'хоста' ('localhost:8081').
Я знаю, что это - легкий вопрос, но Perl является несколько загадочным вначале.
Нартринг прав в отношении метода грубой силы. Вложенные хэши решаются путем цепочки ключей, как например:
$hash{top_key}{next_key}{another_key}; # for %hash
# OR
$hash_ref->{top_key}{next_key}{another_key}; # for refs.
Однако, поскольку оба этих "хэша" являются благословенными объектами. Может помочь чтение HTTP::Server::Simple::Dispatched::Request
, который может сказать вам, что это объект HTTP::Request
и просмотр HTTP:: Request
раздел о header
и method
методах, скажет вам, что следующее делает трюк:
my $method = $request->method();
my $host = $request->header( 'host' );
Действительно, я рекомендую вам получить firefox поисковый плагин под названием Perldoc Module::Name и когда вы столкнетесь с выводом Dumper, который говорит "bless . ... 'Some::Module::Name'", вы можете просто скопировать и вставить его в поисковый плагин и прочитать документацию на CPAN.