use strict; my @input_file = <>; my @temp; my $filecount = 0; my $filename_prefix = "outfile_"; my $file_is_open = 0; my $out_name; foreach my $in (@input_file) { if ($in =~ m/^<\?xml version/) { if ($file_is_open) { close(OF) or die "Couldn't close $out_name!!\n"; $file_is_open = 0; } ++$filecount; $out_name = $filename_prefix.$filecount.".xml"; open(OF,"> $out_name") or die "Couldnt open $out_name for writing!!\n"; print(STDOUT "Writing to $out_name.\n"); $file_is_open = 1; } if ($file_is_open) { print(OF $in); } } close(OF);