.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "Net::DNS::Question 3"
.TH Net::DNS::Question 3 "2012-12-28" "perl v5.16.3" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Net::DNS::Question \- DNS question record
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\&    use Net::DNS::Question;
\&
\&    $question = new Net::DNS::Question(\*(Aqexample.com\*(Aq, \*(AqA\*(Aq, \*(AqIN\*(Aq);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
A Net::DNS::Question object represents a record in the question
section of a \s-1DNS\s0 packet.
.SH "METHODS"
.IX Header "METHODS"
.SS "new"
.IX Subsection "new"
.Vb 2
\&    $question = new Net::DNS::Question(\*(Aqexample.com\*(Aq, \*(AqA\*(Aq, \*(AqIN\*(Aq);
\&    $question = new Net::DNS::Question(\*(Aqexample.com\*(Aq);
\&
\&    $question = new Net::DNS::Question(\*(Aq192.0.32.10\*(Aq, \*(AqPTR\*(Aq, \*(AqIN\*(Aq);
\&    $question = new Net::DNS::Question(\*(Aq192.0.32.10\*(Aq);
.Ve
.PP
Creates a question object from the domain, type, and class passed as
arguments. One or both type and class arguments may be omitted and
will assume the default values shown above.
.PP
\&\s-1RFC4291\s0 and \s-1RFC4632 IP\s0 address/prefix notation is supported for
queries in both in\-addr.arpa and ip6.arpa namespaces.
.SS "decode"
.IX Subsection "decode"
.Vb 1
\&    $question = decode Net::DNS::Question(\e$data, $offset);
\&
\&    ($question, $offset) = decode Net::DNS::Question(\e$data, $offset);
.Ve
.PP
Decodes the question record at the specified location within a \s-1DNS\s0
wire-format packet.  The first argument is a reference to the buffer
containing the packet data.  The second argument is the offset of
the start of the question record.
.PP
Returns a Net::DNS::Question object and the offset of the next
location in the packet.
.PP
An exception is raised if the object cannot be created
(e.g., corrupt or insufficient data).
.SS "encode"
.IX Subsection "encode"
.Vb 1
\&    $data = $question\->encode( $offset, $hash );
.Ve
.PP
Returns the Net::DNS::Question in binary format suitable for
inclusion in a \s-1DNS\s0 packet buffer.
.PP
The optional arguments are the offset within the packet data where
the Net::DNS::Question is to be stored and a reference to a hash
table used to index compressed names within the packet.
.SS "name"
.IX Subsection "name"
.Vb 1
\&    $name = $question\->name;
.Ve
.PP
Internationalised domain name corresponding to the qname attribute.
.PP
Decoding non-ASCII domain names is computationally expensive and
undesirable for names which are likely to be used to construct
further queries.
.PP
When required to communicate with humans, the 'proper' domain name
should be extracted from a query or reply packet.
.PP
.Vb 4
\&    $query = new Net::DNS::Packet( $example, \*(AqANY\*(Aq );
\&    $reply = $resolver\->send($query) or die;
\&    ($question) = $reply\->question;
\&    $name = $question\->name;
.Ve
.SS "qname, zname"
.IX Subsection "qname, zname"
.Vb 2
\&    $qname = $question\->qname;
\&    $zname = $question\->zname;
.Ve
.PP
Canonical \s-1ASCII\s0 domain name as required for the query subject
transmitted to a nameserver.  In dynamic update packets, this
attribute is known as \fIzname()\fR and refers to the zone name.
.SS "qtype, ztype"
.IX Subsection "qtype, ztype"
.Vb 2
\&    $qtype = $question\->qtype;
\&    $ztype = $question\->ztype;
.Ve
.PP
Returns the question type attribute.  In dynamic update packets,
this attribute is known as \fIztype()\fR and refers to the zone type.
.SS "qclass, zclass"
.IX Subsection "qclass, zclass"
.Vb 2
\&    $qclass = $question\->qclass;
\&    $zclass = $question\->zclass;
.Ve
.PP
Returns the question class attribute.  In dynamic update packets,
this attribute is known as \fIzclass()\fR and refers to the zone class.
.SS "print"
.IX Subsection "print"
.Vb 1
\&    $object\->print;
.Ve
.PP
Prints the record to the standard output.  Calls the \fIstring()\fR method
to get the string representation.
.SS "string"
.IX Subsection "string"
.Vb 1
\&    print "string = ", $question\->string, "\en";
.Ve
.PP
Returns a string representation of the question record.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c)1997\-2002 Michael Fuhr.
.PP
Portions Copyright (c)2002\-2004 Chris Reinhardt.
.PP
Portions Copyright (c)2003,2006\-2011 Dick Franks.
.PP
All rights reserved.
.PP
This program is free software; you may redistribute it and/or
modify it under the same terms as Perl itself.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
perl, Net::DNS, Net::DNS::DomainName, Net::DNS::Packet,
\&\s-1RFC 1035\s0 Section 4.1.2
