I am trying to read an input line and if the first field is H and the second field is 0000, then read the tenth field (which is 1533864 with 4 leading spaces). I need to check the first digit; if it is a 1 then change field[1] from 0000 to 0120, if it is 7 then change field[1] from 0000 to 0710, and if it is 8 then change field[1] from 0000 to 0800.
The program drops me into the inner loop for 1 and then again for 8 and the value of field[1] is never changed.
Can somebody please point out what I did wrong.
My input data is:
H,0000, 514659,GHXPCCONNECT810,45066599,,,,,,1533864,,,,,,,,20090529,,,,622.60
D,0000, 514659,GHXPCCONNECT810,45066599,,1,,,,1533864,,,,,,,,,,,,,,,,,,,,,,,,,
This 2 lines of data.
The program is:
foreach $line (<MyInFile>)
{
@field = split(/\,/, $line);
@numb = $field[10];
print $numb[0];
if ($field[0] == "H")
{
if ($field[1] == "0000")
{
if ($numb[0] =~ m/1/) # PO number starts with a 1
{
$field[1] = "0120";
print MyInFile $line;
}
if ($numb[0] =~ m/7/) # PO number starts with a 7
{
$field[1] = "0710";
print MyInFile $line;
}
if ($numb[0] =~ m/8/) # PO number starts with a 8
{
$field[1] = "0800";
print MyInFile $line;
}
}
}
}
The program drops me into the inner loop for 1 and then again for 8 and the value of field[1] is never changed.
Can somebody please point out what I did wrong.
My input data is:
H,0000, 514659,GHXPCCONNECT810,45066599,,,,,,1533864,,,,,,,,20090529,,,,622.60
D,0000, 514659,GHXPCCONNECT810,45066599,,1,,,,1533864,,,,,,,,,,,,,,,,,,,,,,,,,
This 2 lines of data.
The program is:
foreach $line (<MyInFile>)
{
@field = split(/\,/, $line);
@numb = $field[10];
print $numb[0];
if ($field[0] == "H")
{
if ($field[1] == "0000")
{
if ($numb[0] =~ m/1/) # PO number starts with a 1
{
$field[1] = "0120";
print MyInFile $line;
}
if ($numb[0] =~ m/7/) # PO number starts with a 7
{
$field[1] = "0710";
print MyInFile $line;
}
if ($numb[0] =~ m/8/) # PO number starts with a 8
{
$field[1] = "0800";
print MyInFile $line;
}
}
}
}