Hello rajsai28, and welcome to the Monastery!
Like vinoth.ree, I don’t know what you are asking. So I’ll just make two observations:
If the fields can contain the separator character |, then the output is meaningless because there is no way to tell where one record ends and the next begins. But if they can’t contain that character, then the output shown cannot have come from the print statement shown, because the former contains 60 such characters but the latter only 21.
You can save yourself a lot of typing by using join:
16:41 >perl -Mstrict -wE "my @recs = (1, 'a', 2, 'z'); print STDOUT jo
+in('|', @recs), qq[\n];"
1|a|2|z
16:44 >
Hope that helps,
Update: The question as originally posted contained the following print statement:
print DETAIL $Record_Detail_id."|".$NUMBER."|".$NUMBER1."|".$NUMBER2."
+|".$NUMBER4."|".$NUMBER5."|".$NUMBER6."|".$NUMBER12."|".$State_Provin
+ce_Code."|".$Org_Id."|".$Vendor_Name."|".$Dummy_Field_7."|".$Dummy_Fi
+eld_8."|".$Dummy_Field_9."|".$Dummy_Field_10."|".$Dummy_Field_11."|".
+$Dummy_Field_12."|".$Dummy_Field_13."|".$Dummy_Field_14."|".$Dummy_Fi
+eld_15."|".$Dummy_Field_16."|".$Action_time_stamp."\n";
It was this to which my reply referred.