in reply to Re^7: Undef values from file open
in thread Undef values from file open

It prints all the data from the file no problem, this line also prints:
print "$data->{ date }, $data->{ day }, $data->{ name }\n"
This one gets me nothing:
pp @{ $data }{ (@parms) };

Replies are listed 'Best First'.
Re^9: Undef values from file open
by AnomalousMonk (Archbishop) on Mar 23, 2016 at 03:06 UTC

    Here's another step along the debugging path poj began here. We know that each line of the file is being read correctly; now, what happens when we process a line and assign its sub-strings to the  $data hashref?

    c:\@Work\Perl\monks\Anonymous Monk\1158543>perl -e "use strict; use warnings; use Data::Dump 'pp'; ;; my $file_name = 'file.csv'; open my $lines, '<', $file_name or die qq{opening file '$file_name': $!}; ;; while (my $line = <$lines>) { pp $line; next unless $line =~ /\S/; chomp $line; my $data; ($data->{date}, $data->{day}, $data->{name}) = split(/,/, $line); pp $data; print qq{------- \n} } " "01/04/2014,Friday,Joe\n" { date => "01/04/2014", day => "Friday", name => "Joe" } ------- "02/11/2011,Monday,Mary\n" { date => "02/11/2011", day => "Monday", name => "Mary" } ------- "05/09/2016,Monday,Ann\n" { date => "05/09/2016", day => "Monday", name => "Ann" } ------- "07/02/2013,MOnday,Marc\n" { date => "07/02/2013", day => "MOnday", name => "Marc" } ------- "\n"
    What do you get when you run this code? Note that my data file contains a blank line at the end for which no further processing is done, as expected, so this aspect of the program works.

    BTW: I'd still be curious to know the exact version of Perl you're using. I don't really know what being "current" means.


    Give a man a fish:  <%-{-{-{-<

Re^9: Undef values from file open
by poj (Abbot) on Mar 22, 2016 at 22:33 UTC

    What does pp $data give, and what version of perl do you have ?

Re^9: Undef values from file open
by poj (Abbot) on Mar 23, 2016 at 08:29 UTC

    What does pp @parms; give you ?