- CSV
Read CSV file
examples/references/data.csv
fname,lname,phone Boo,Bar,123 Foo,Baz,456 Moo,Zorg,789
We would like to read in that file and be able to access the fname of row 5 as $data[3]{fname} # the fname on line 5 is in index 3 because: # line 1 is the header # line 2 is element 0 in the array # ... # line 5 is element 3 in the array
examples/references/read_csv_file.pl
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $filename = shift or die "Usage: $0 FILENAME ( examples/references/data.csv )\n"; my @data; open my $fh, '<', $filename or die; my $header = <$fh>; chomp $header; my @header = split /,/, $header; while (my $line = <$fh>) { chomp $line; my %row; my @values = split /,/, $line; foreach my $i (0..@header-1) { my $field = $header[$i]; $row{$field} = $values[$i]; } # using hash slices: # @row{@header} = split /,/, $line; push @data, \%row; } print Dumper \@data;
$VAR1 = [ { 'lname' => 'Bar', 'fname' => 'Boo', 'phone' => '123' }, { 'lname' => 'Baz', 'fname' => 'Foo', 'phone' => '456' }, { 'lname' => 'Zorg', 'fname' => 'Moo', 'phone' => '789' } ];