in reply to Re: Write array contents to csv file
in thread Write array contents to csv file
Okay, adding test data, fixing most of the syntax errors, breaking out the steps, and adding debugging statements (collectively referred to as "Troubleshooting by firepower" by an old friend in the business), we have some clues for you to examine:
#!/usr/bin/perl -w use strict; # Set up test data my @header = ( 'Name', 'DOB', 'DOJ', 'Country', 'Region', 'Salary', 'Place', ); my @data = ( 'JKSLK', 19890101, 20000101, 'France', 'ALMERIA', 100000.00, 'BCFGHK', ); my $empid = 123456; # Set up working data my @report = (); my @array = (); # Initialize push @array, @header; # Do the work my $csvfile; # SKM: What is this for, exactly? my $reportLine = join "\t", ($empid, @array); print "DEBUG: \$reportLine = [$reportLine]\n"; push @report,$reportLine,"\n"; foreach my $reportElement (@report) { print "DEBUG: \$reportElement = [$reportElement]\n"; } foreach (@report) { print $_; print $csvfile $_; } exit; __END__
This produces:
C:\Steve\Dev\PerlMonks\P-2013-07-11@1436-CSV-Fail>perl csvfail2.pl DEBUG: $reportLine = [123456 Name DOB DOJ Country Region + Salary Place] DEBUG: $reportElement = [123456 Name DOB DOJ Countr +y Region Salary Place] DEBUG: $reportElement = [ ] Can't use an undefined value as a symbol reference at csvfail2.pl line + 54. 123456 Name DOB DOJ Country Region Salary Place
My observations:
I don't want to just solve the problem for you, since the point of PerlMonks is, generally, to help you become a better Perl programmer. That is best done if you do some of the analysis yourself.
I'd be happy to answer any questions you have about what this example is showing us, or adjustments to the code which more clearly refine the scope of your question.
|
|---|