1#!/usr/bin/perl -w 2##@file 3#@cond Perl 4use strict; 5 6my $tag = shift @ARGV; 7my $filename = shift @ARGV; 8my $file_to_write_to_pattern = shift @ARGV; 9my $files_written = ""; 10 11open(XMLFILE, $filename); 12 13sub write_file 14{ 15 my $data = shift; 16 my $num = shift; 17 18 my $towriteto = $file_to_write_to_pattern; 19 $towriteto =~ s/XXX/$num/; 20 21 open(TOWRITE, ">$towriteto"); 22 23 print TOWRITE $data; 24 25 close TOWRITE; 26 27 $files_written .= " $towriteto"; 28} 29 30my $xml_header = "<?xml version=\"1.0\"?>\n<gnc-v2>\n"; 31my $to_write = $xml_header; 32my $grabbing = 0; 33my $grab_num = 0; 34 35while (<XMLFILE>) { 36 if ($grabbing) { 37 $to_write .= $_; 38 if ($_ =~ m/\<\/$tag\>/) { 39 $to_write .= "</gnc-v2>\n"; 40 write_file($to_write, $grab_num); 41 $to_write = $xml_header; 42 $grab_num++; 43 $grabbing = 0; 44 } 45 } 46 elsif ($_ =~ m/\<$tag .*\>/) { 47 $grabbing = 1; 48 $to_write .= $_; 49 } 50} 51 52print $files_written 53##@endcond Perl 54