http://www.perlmonks.org?node_id=1075886


in reply to Re: How to generate the .doc file for each row from a csv file
in thread How to generate the .doc file for each row from a csv file

Hi HDB, Thanks for the inputs, based on your input i have remodified the script for generating .doc files as below
#!/usr/bin/perl $file = "C:\\Users\\xxx\\Desktop\\reportlist.csv"; open(FH,"$file") or die"$!\n"; @arr = <FH>; $first = shift(@arr); foreach $line(@arr) { ($reportname,$reportdesc,$actfl,$format,$freq,$cabinet,$folder,$appl) += split(',',$line); #print "$reportname,$reportdesc,$actfl,$format,$freq,$cabinet,$folder, +$appl\n"; @files = "C:\\Users\\xxx\\Desktop\\$reportname.doc"; #print "@files\n"; foreach $doc(@files) { open(FH,'>'.$doc) or die"$!\n"; print FH "\[DOCUMENT\]\n"; print FH "INPUT=$reportname" ."\n"; print FH "FORMAT=$format" . "\n"; print FH "DESCRIPTION=$reportdesc" ."\n"; print FH "RECDATE= " ."\n"; print FH "DELETEINPUT=NO" ."\n"; print FH "NODE_ID=1" ."\n"; print FH "VOLUME_ID=1" ."\n"; print FH " " ."\n"; print FH "[CBNTFLDR]" ."\n"; print FH "CABINET=$cabinet" . "\n"; print FH "FOLDER=$folder" ."\n"; print FH " " ."\n"; print FH "[USER_DEFINITIONS]" ."\n"; print FH "Freq:Daily Application:$appl" ."\n"; print FH " " ."\n"; } close(FH); }
When i run the above code it is perfectly creating the .doc files for all the csv rows.

Replies are listed 'Best First'.
Re^3: How to generate the .doc file for each row from a csv file
by hdb (Monsignor) on Feb 23, 2014 at 12:26 UTC

    One comment: you have a single .doc file in for each row in your csv file, so you can assign the filename directly to $doc:

    $doc = "C:\\Users\\xxx\\Desktop\\$reportname.doc";

    without any need for a loop over @files.