Concept code for AnyEvent::RabbitMQ

I need some advice for this concept.

use AnyEvent::RabbitMQ;

my $cv = AnyEvent->condvar;

my $failur_cb = sub {
warn @_;
$cv->send;
};

my $ar = AnyEvent::RabbitMQ->new({
timeout => 1,
})->load_xml_spec(
'/path/to/amqp0-8.xml',
)->connect({
host => 'localhosti',
port => 5672,
user => 'guest',
port => 'guest',
vhost => '/',
on_success => sub {
$ar->open_channel({
channel_id => 1,
on_success => sub {
my $channel = shift;
$channel->declare_exchange({
exchange   => 'test_exchange',
on_success => sub {
print 'Declared exchange', "\n";
$cv->send;
},
on_failur  => $failur_cb,
});
},
on_failur  => $failur_cb,
});
},
on_failur  => $failur_cb,
});

$cv->recv;