Hi List I have a data file as with the following format <RRPTP:PSTU=ALL; RADIO TRANSMISSION PACKET SWITCHED TERMINATION UNIT DATA
PSTU STN IWDVER AGMOU1SIU_DD3045 AGMOU1SIU 3 SAPI LBG CONN 0 1 ACT 10 1 ACT 11 1 ACT 12 1 ACT 62 1 ACT PSTU STN IWDVER AIRMA1SIU_DD0190 AIRMA1SIU 3 SAPI LBG CONN 0 1 ACT 10 1 ACT 11 1 ACT 12 1 ACT 62 1 ACT PSTU STN IWDVER ALCAC1SIU_DD3872 ALCAC1SIU 3 SAPI LBG CONN 0 1 ACT 10 1 ACT 11 1 ACT 12 1 ACT 62 1 ACT END ## I was told that this data file has a fixed format so to parse this data file I have developed the following code and this is working fine. open my $RFH,'<',$Input_File_Name; open my $WFH,'>',$Output_File_Name; my $str; my $print_flag = 'N'; my $print_flag_1 = 'N'; while(<$RFH>) { if ($print_flag eq 'Y') { my $line = $_; chomp($line); my @line_1 = split(/\s+/,$line); if(($line_1[1]) && ($line_1[2])) { my $str_tmp_1 = "$line_1[0];$line_1[1];$line_1[2];"; $str .= $str_tmp_1; }else { my $str_tmp_1 = "$line_1[0];NULL;NULL;"; $str .= $str_tmp_1; } $print_flag = 'N'; } $print_flag = 'Y' if m/^PSTU/; if ($print_flag_1 eq 'Y') { my $line = $_; chomp($line); $line =~ s/^\s+//g; my $number = substr($line,0,2); if( $number =~ m/\s{1}0/ ) { $str .= "1;"; } if( $number =~ m/10/ ) { $str .= "1;"; } if( $number =~ m/11/ ) { $str .= "1;"; } if( $number =~ m/12/ ) { $str .= "1;"; } if( $number =~ m/62/ ) { $str .= "1"; print $WFH "$str\n"; $str = ""; $print_flag_1 = 'N'; } } $print_flag_1 = 'Y' if m/^\s*$/; #$print_flag_1 = 'Y' if m/^PSTU/; } close($RFH); close($WFH); } But now the data file has changed into the following format ( To make it short I am copying here part of it) SAPI LBG CONN 10 1 ACT 11 1 ACT 12 1 ACT (There is a change in the SAPI section , PSTU will be remain same ) Now they are saying that it can be possible that all SAPI will not be present at a time ( which are 0,10,11,12,62) . As you can see 0 and 62 are missing in this case. Out of five SAPI any number can be present in a SAPI block. So I am trying to write a generic code which can handle the data/lines starting below the SAPI upto the next blank line , so in the above case it will be from stating from 10 upto 12. Can you please provide me any idea how to do this? Best Regards Anirban.