input_parse_and_output("Bill");
input_parse_and_output("Bond");
input_parse_and_output("Note");
# Subroutine has two arguments 1.Input file name 2. Output file directory 3. Output file name all of these are scalar
sub input_parse_and_output{
foreach my $input_data_each_line(@input_data_in_array){
chomp($input_data_each_line);
# if the current line not contatin cusip then program will move to next line
next unless $input_data_each_line=~ /cusip/;
next unless $input_data_each_line=~ /"securityType":"$_[0]"/;
if(defined $input_data_each_line){
foreach my $output_header_names_temp(@output_header_names){
chomp($output_header_names_temp);
if(defined $output_header_names_temp){
# regex to replace the double quotes to blank string
#input_data_each_line=~ s/"//g;
$input_data_each_line=~ /$output_header_names_temp:([\w\d\-\$\%\:\!\@\&\*\.]+)/;
if(defined $1){
my $temp=$1;
if($temp=~ /\:/){
# regex for get exact first ten charavtetr it can be digit or hyphen
$temp=~ /^([\d\-]{10})/;
print OUTPUT_FILE_WRITE "$1\t";
}
else {
print OUTPUT_FILE_WRITE "$1\t";
}
}
else {
print OUTPUT_FILE_WRITE "NULL\t";
}
}
}
print OUTPUT_FILE_WRITE "\n";
}
}
}
####
912828Q86 Note 1-Year 2016-05-25 2016-05-27 2018-04-30 100.003850 NULL
912796HD4 Bill 4-Week 2016-01-26 2016-01-28 2016-02-25 99.977056 NULL
912810RS9 Bond 30-Year 2016-05-12 2016-05-16 2046-05-15 97.619462 2.500000
912810RQ3 Bond 29-Year 2016-04-14 2016-04-15 2046-02-15 98.011430 2.500000
912796HD4 Bill 4-Week 2016-01-26 2016-01-28 2016-02-25 99.977056 NULL
912828N71 Note 9-Year 2016-05-19 2016-05-31 2026-01-15 103.533587 0.625000
####
912796HD4 Bill 4-Week 2016-01-26 2016-01-28 2016-02-25 99.977056 NULL
912796HD4 Bill 4-Week 2016-01-26 2016-01-28 2016-02-25 99.977056 NULL
912810RS9 Bond 30-Year 2016-05-12 2016-05-16 2046-05-15 97.619462 2.500000
912810RQ3 Bond 29-Year 2016-04-14 2016-04-15 2046-02-15 98.011430 2.500000
912828Q86 Note 1-Year 2016-05-25 2016-05-27 2018-04-30 100.003850 NULL
912828N71 Note 9-Year 2016-05-19 2016-05-31 2026-01-15 103.533587 0.625000