Ok Let me make it more clear..Im fetching those variables from a flat file and printing it in the XML file. The order of printing of the variable will differ from how we are getting the variable.
#!/usr/bin/perl
open (my $INFO, "<", "$File") or die("Cannot open the flat file $!");
open(my $LOG,">>LOG_file") or die("Cannot open $!");
open(my $XML,">xml_file") or die("Cannot open $!");
while (defined(my $line2 = $INFO)) {
$line2 =~ s/&/&/g;
print "$line2\n";
my $segment = substr($line2,0,2);
if($segment eq "00")
{
my $Var1 = trim(substr($line2,40,8));
}
if($segment eq "A0")
{
$Var2 = trim(substr($line2,2,9));
$Var3 = trim(substr($line2,14,3));
$Var4 = trim(substr($line2,20,42));
$Var5 = trim(substr($line2,62,30));
and so on
}
print XML "<Header>\n";
print XML "<AAA>VAR1<\/AAA>\n";
print XML "<BBB>VAR2<\/BBB>\n";
print XML "<CCC>VAR3<\/CCC>\n";
print XML "<DDD>VAR4<\/DDD>\n";
print XML "<EEE>VAR5<\/EEE>\n";
print XML "<Header>\n";
close $LOG;
close $XML;
close $INFO;
sub trim($)
{
my $string = shift;
$string =~ s/^\s+//;
$string =~ s/\s+$//;
return $string;
}