Использовать XML: просто. Это, ну, просто.
Попробуйте следующий код:
use strict;
use warnings;
use XML::Simple;
my $xml = XMLin( <<XML );
<environment>
<applications>
<application1>
<app-config>
<server host="boxA" port="1234"/>
</app-config>
</applicaitons>
</environment>
XML
print $xml->{"applications"}{"app-config"}{"server"}{"host"} . "\n";
print $xml->{"applications"}{"app-config"}{"server"}{"port"} . "\n";
в вашем фрагменте XML вы получите ошибку, такую как:
mismatched tag at line 7, column 9, byte 159 at C:/Perl64/lib/XML/Parser.pm line 187
так как он говорит мне, что есть несоответствующий тег, я начинаю изучать XML, пока не решу проблемы с ошибками, поэтому я работаю над ошибками XML, пока не придумаю:
use strict;
use warnings;
use XML::Simple;
my $xml = XMLin( <<XML );
<environment>
<applications>
<app-config>
<server host="boxA" port="1234"/>
</app-config>
</applications>
</environment>
XML
print $xml->{"applications"}{"app-config"}{"server"}{"host"} . "\n";
print $xml->{"applications"}{"app-config"}{"server"}{"port"} . "\n";
А теперь программа выдает ожидаемое:
boxA
1234
Как видите, это помогло мне быстро обнаружить источник ошибки и без дополнительной настройки XML :: Simple сделал очень естественное отображение хешей perl, которые мы все так любим :-) ... simple.