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

It still prints undefs:
Test Data:
01/04/2014,Friday,Joe 02/11/2011,Monday,Mary 05/09/2016,Monday,Ann 07/02/2013,MOnday,Marc

Replies are listed 'Best First'.
Re^5: Undef values from file open
by poj (Abbot) on Mar 22, 2016 at 21:24 UTC

    Maybe you have trailing blank lines .

    while (my $line = <$lines>) { next unless $line =~ /\S/; # <- add chomp $line; . .
Re^5: Undef values from file open
by AnomalousMonk (Archbishop) on Mar 22, 2016 at 21:27 UTC

    What does your program look like?


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

      Here, and I can not get it to work:
      #!/usr/bin/perl use strict; use warnings; use Data::Dump 'pp'; use Data::Dumper; my $file_name = "file.csv"; open my $lines, '<', $file_name or die "Can't open file $file_name, $!"; my @parms = qw( date day name ); while (my $line = <$lines>) { next unless $line =~ /\S/; # <- add chomp $line; my $data; ( $data->{ date }, $data->{ day }, $data->{ name } ) = split(/,/, $ +line); pp @{ $data }{ (@parms) }; }

        What do you get with this

        #!/usr/bin/perl use strict; use warnings; use Data::Dump 'pp'; my $file_name = "file.csv"; open my $lines, '<', $file_name or die "Can't open file $file_name, $!"; while (my $line = <$lines>) { pp $line; }

        Here's what I get from the code you just posted and the data from above:

        c:\@Work\Perl\monks\Anonymous Monk\1158543>perl -e "use strict; use warnings; ;; use Data::Dump 'pp'; use Data::Dumper; ;; my $file_name = \"file.csv\"; ;; open my $lines, '<', $file_name or die \"Can't open file $file_name, $!\"; ;; my @parms = qw( date day name ); ;; while (my $line = <$lines>) { next unless $line =~ /\S/; chomp $line; my $data; ( $data->{ date }, $data->{ day }, $data->{ name } ) = split(/,/, $ +line); pp @{ $data }{ (@parms) }; } " ("01/04/2014", "Friday", "Joe") ("02/11/2011", "Monday", "Mary") ("05/09/2016", "Monday", "Ann") ("07/02/2013", "MOnday", "Marc")


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