#!/usr/bin/perl use strict; open (IN,"testxml.dat"); my @buf = ; close IN; for (my $i=0; $i<=$#buf; $i++) { if ($buf[$i] =~ s/^\s*(.*)<\/jobnumber>\s*$/$1/) { $buf[$i+1] =~ s/^\s*\s*(.*)\s\s*$/$1/; # if your tags are really like this &process($buf[$i],$buf[$i+1]); } } sub process { my ($jobnumber,$location) = @_; print "Found a job $jobnumber in $location.\n"; # do something }