Я думаю, тебе надо повесить handler (именно так и говорится в perldoc XML::Parser , так что читай) на начало xml-тэга, в первых строчках perldoc'а есть пример, handler называется Start. Каждый раз при нахождении открывающего тэга будет дёргаться твоя процедура, куда передаётся этот найденный элемент. Так ты получишь название встретившегося элемента и все его пары атрибут-значение.
>хотелось бы получить что то типа
>$var1 содержит id - параметр
>$var2 содержит a - значение
Странного хочешь... Зачем тебе сам 'id'? Тебе значение этого атрибута нужно, а не название его самого. Ну если действительно это надо, то весь набор атрибут-значение даются тебе при вызове Start. Содержимое какого-либо элемента можно получить по handler'у Char.