#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use XML::LibXML::Reader; my $file = shift; my $reader = 'XML::LibXML::Reader'->new(location => $file) or die "Cannot read $file.\n"; while ($reader->nextElement('signal')) { say $reader->getAttribute('id') if '3464' eq $reader->getAttribute('sigid'); }