use warnings; use strict; use Text::xSV; my $csv = Text::xSV->new(fh => *DATA, row_size_warning => undef); while (my $row = $csv->get_row()) { my @prefix = splice @$row, 0, 3; foreach (@$row) { print join ',', @prefix, $_ . "\n"; } } __DATA__ 1401,PERISH STORE INV,Quarterly,(V) INV810 USER NAME (EDIT REPORT IF 05309 PRSH INV),EXTRACT WAS RUN),(V) INV820 USER NAME (PERISHABLE INVENTORY REPORT),(VTD8) D:\DEPT\ACCT\MAIL\INV820.DAT,(V) INV820C USER NAME (PERISHABLE INVENTORY-BAKERY),(QUARTERLY RUN ONLY) 1402,PERSH INV BOOKS,Quarterly,(V) INV805 58 COPIES - USER NAME,(V) INV805 2 COPIES - USER NAME,(V) INV805A XTRA COPIES-SAVE IN COMPUTER ROOM,ANNUAL STORE INVENTORY ONLY:,(V) INV805 58 COPIES - USER NAME,(V) INV805 2 COPIES - USER NAME,(V) INV805A XTRA COPIES-SAVE IN COMPUTER ROOM 1403,BAKERY INV BOOKS,Quarterly,(V) INV805 35 COPIES - USER NAME,(V) INV805A 5 COPIES - SAVE IN COMPUTER ROOM,ANNUAL STORE INVENTORY ONLY:,(J) INV805 35 COPIES - USER NAME,(J) INV805A 5 COPIES - SAVE IN COMPUTER ROOM 1501,INV PRICE GUIDE,As Needed,(V) MSC052 BOTH COPIES ARE TO BE PUT IN BINDERS AND,AND LEFT ON THE CABINETS BEHIND THE DP,SECRETARY'S DESK #### $ perl tst.pl 1401,PERISH STORE INV,Quarterly,(V) INV810 USER NAME (EDIT REPORT IF 05309 PRSH INV) 1401,PERISH STORE INV,Quarterly,EXTRACT WAS RUN) 1401,PERISH STORE INV,Quarterly,(V) INV820 USER NAME (PERISHABLE INVENTORY REPORT) 1401,PERISH STORE INV,Quarterly,(VTD8) D:\DEPT\ACCT\MAIL\INV820.DAT 1401,PERISH STORE INV,Quarterly,(V) INV820C USER NAME (PERISHABLE INVENTORY-BAKERY) 1401,PERISH STORE INV,Quarterly,(QUARTERLY RUN ONLY) 1402,PERSH INV BOOKS,Quarterly,(V) INV805 58 COPIES - USER NAME 1402,PERSH INV BOOKS,Quarterly,(V) INV805 2 COPIES - USER NAME 1402,PERSH INV BOOKS,Quarterly,(V) INV805A XTRA COPIES-SAVE IN COMPUTER ROOM 1402,PERSH INV BOOKS,Quarterly,ANNUAL STORE INVENTORY ONLY: 1402,PERSH INV BOOKS,Quarterly,(V) INV805 58 COPIES - USER NAME 1402,PERSH INV BOOKS,Quarterly,(V) INV805 2 COPIES - USER NAME 1402,PERSH INV BOOKS,Quarterly,(V) INV805A XTRA COPIES-SAVE IN COMPUTER ROOM 1403,BAKERY INV BOOKS,Quarterly,(V) INV805 35 COPIES - USER NAME 1403,BAKERY INV BOOKS,Quarterly,(V) INV805A 5 COPIES - SAVE IN COMPUTER ROOM 1403,BAKERY INV BOOKS,Quarterly,ANNUAL STORE INVENTORY ONLY: 1403,BAKERY INV BOOKS,Quarterly,(J) INV805 35 COPIES - USER NAME 1403,BAKERY INV BOOKS,Quarterly,(J) INV805A 5 COPIES - SAVE IN COMPUTER ROOM 1501,INV PRICE GUIDE,As Needed,(V) MSC052 BOTH COPIES ARE TO BE PUT IN BINDERS AND 1501,INV PRICE GUIDE,As Needed,AND LEFT ON THE CABINETS BEHIND THE DP 1501,INV PRICE GUIDE,As Needed,SECRETARY'S DESK