I took a quick look at Net::DNS::Resolver::Programmable.om and the usage of make_query_packet there is for parsing only, so it can easily be replaced/bypassed by instantiating the question directly, i.e. like this:
--- Programmable.pm.orig 2007-05-31 00:27:27.000000000 +0200
+++ Programmable.pm 2015-11-23 15:19:04.528411777 +0100
@@ -191,8 +191,7 @@
sub send {
my $self = shift;
- my $query_packet = $self->make_query_packet(@_);
- my $question = ($query_packet->question)[0];
+ my $question = Net::DNS::Question->new(@_);
my $domain = lc($question->qname);
my $rr_type = $question->qtype;
my $class = $question->qclass;
(patch also attached)
--- Programmable.pm.orig 2007-05-31 00:27:27.000000000 +0200
+++ Programmable.pm 2015-11-23 15:19:04.528411777 +0100
@@ -191,8 +191,7 @@
sub send {
my $self = shift;
- my $query_packet = $self->make_query_packet(@_);
- my $question = ($query_packet->question)[0];
+ my $question = Net::DNS::Question->new(@_);
my $domain = lc($question->qname);
my $rr_type = $question->qtype;
my $class = $question->qclass;