use strict; use warnings; my $file_name = "dharry.xml"; my $num_departments = 1000; open (XML_OUT_FILE, ">$file_name") or die "Could not open $file_name\n"; print XML_OUT_FILE "\n"; print XML_OUT_FILE "\n"; for (my $i=0; $i<$num_departments; $i++) { print XML_OUT_FILE " \n"; print XML_OUT_FILE " Bla$i\n"; for (my $j=0; $j<5; $j++) { print XML_OUT_FILE " \n"; print XML_OUT_FILE " John$i$j\n"; print XML_OUT_FILE " Doe$i$j\n"; my $phone_ext = int(rand(10000000)); print XML_OUT_FILE " $phone_ext\n"; print XML_OUT_FILE " \n"; } print XML_OUT_FILE " \n"; } print XML_OUT_FILE "\n"; close XML_OUT_FILE or die "Could not close $file_name\n"; print "Done...\n"; #### use strict; use warnings; use XML::Twig; # Select Twig bassed on value of id attribute on Person element my $twig= new XML::Twig( twig_handlers => { 'Person[@id="50000"]' => \&Person } ); $twig->set_pretty_print ('record'); # Human readable output please $twig->parsefile( "dharry.xml"); $twig->flush; sub Person { my( $twig, $person)= @_; my $name = $person->first_child("First"); $name->set_text("dHarry"); $twig->flush; }