in reply to Unable to get more than one line

This is because you're only matching a line at a time, whereas you want to match the whole file e.g
## die() if we can't open the file open(F, "prof.xml") or die("ack: $!"); ## join together all the lines into a single string my $xml = join '', <F>; # see. also C<local $/> ## assign $data to the capture in the regex ## also note the use of the 's' modifier (see. man perlre) my($data) = $xml =~ m{(<emp>.*</emp>)}s;
But if you're working with XML you'll be wanting an XML parser to make your life easier. Firstly there's the basic XML::Parser, but that'll probably be a little clunky for your needs so you may want to use XML::Simple instead.
HTH

_________
broquaint