thanks everyone for their input....
after trying a few solutions, i guess I shall adopt the below approach....
use XML::Parser::PerlSAX;
use XML::Handler::YAWriter;
my $xmlquery = qq(<AIRAVAALABILTY> <AIRAVL> <AIRAVL012U>01MAY</AIRAVL0
+12U> <AIRAVL0145>SIN</AIRAVL0145> <AIRAVL018B>HKG</AIRAVL018B> <AIRAV
+L007V>Y</AIRAVL007V> <AIRAVL012G></AIRAVL012G> </AIRAVL> </AIRAVAALAB
+ILTY>);
my $ya = new XML::Handler::YAWriter(
'Output' => new IO::File ( ">-" ),
'Pretty' => {
'NoComments'=>1,
'PrettyWhiteIndent'=>1,
'NoWhiteSpace'=>1,
'PrettyWhiteNewline'=>1,
} );
my $perlsax = new XML::Parser::PerlSAX( 'Handler' => $ya);
my $result = $perlsax->parse(Source => { Encoding => 'ISO-8859-1', Str
+ing => "$xmlquery" });
print qq($result);
which in turn prints out
<AIRAVAALABILTY>
<AIRAVL>
<AIRAVL012U>01MAY
</AIRAVL012U>
<AIRAVL0145>SIN
</AIRAVL0145>
<AIRAVL018B>HKG
</AIRAVL018B>
<AIRAVL007V>Y
</AIRAVL007V>
<AIRAVL012G>
</AIRAVL012G>
</AIRAVL>
</AIRAVAALABILTY>