Ya I understand my problem now. But I solved this problem earlier in a way.
foreach my $Postpaid_file (@Postpaid_files) { open (POST ,"$Postpaid_file") or print "cannot open file\n +"; while(my $cdr_post_line = <POST>) { chomp $cdr_post_line; my @cdr_post_array = split(/\|/,$cdr_post_line); if ($cdr_post_array[12] eq "GSM" && $cdr_post_array[9] + eq "Submit") { $cdr_post_MO_cnt++ if any { /^\Q$cdr_post_arra +y[11]\E$/ } @MOresp_error; $Total_GSM_attempts++ unless any { /^\Q$cdr_po +st_array[11]\E$/ } @MOresp_error; } if ($cdr_post_array[12] eq "SMPP" && $cdr_post_array[9 +] eq "Submit" && $cdr_post_array[10] eq "0") { $cdr_post_AO_cnt++; #if any { /^\Q$cdr_post_ +array[11]\E$/ } @MOresp_error; $total_AO_success++ unless any { /^\Q$cdr_post +_array[11]\E$/ } @MOresp_error; $Total_SMPP_attempts++ unless any { /^\Q$cdr_p +ost_array[11]\E$/ } @MOresp_error; } if ($cdr_post_array[12] eq "GSM" && ($cdr_post_array[1 +3] eq "GSM" || $cdr_post_array[13] eq "ESMEGW") && $cdr_post_array[9] + eq "Submit") { $total_MT_P2P++ unless any { /^\Q$cdr_post_arr +ay[11]\E$/ } @MOresp_error; } if ($cdr_post_array[12] eq "GSM" && ($cdr_post_array[1 +3] eq "GSM" || $cdr_post_array[13] eq "ESMEGW") && $cdr_post_array[9] + eq "Submit" && $cdr_post_array[7] eq "Delivered") { $total_MT_P2P_success++; }
I thought we can do a better code (by not using all if's to check the conditions) using modules. Almost here also we are doing same. Then what's the benefit using this module. Or is there any other way to simpler my code(above mentioned)????
The main reason to simplify my code is its become 624 lines which contains mostly if's(nearly one if for every four lines) and to check "eq && eq && eq". Its bulky, error prone & (important one) I dont like this :-)
In reply to Re^4: Need help with Text::CSV
by ravi45722
in thread Need help with Text::CSV
by ravi45722
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |