csv to hash data structure conversion using perl
- by Kavya S
1. Convert a .csv file to perlhash data structure
Format of a .csv file:
sw,s1,s2,s3,s4
ver,v1,v2,v3,v4
msword,v2,v3,v1,v1
paint,v4,v2,v3,v3
outlook,v1,v1,v3,v2
my perl script:
#!/usr/local/bin/perl
use strict; 
use warnings;
use Data::Dumper; 
my %hash; 
open my $fh, '<', 'some_file.csv' or die "Cannot open: $!"; 
while (my $line = <$fh>) { 
    $line =~ s/,,/-/; chomp ($line); 
    my @array = split /,/, $line; 
    my $key = shift @array; 
    $hash{$key} = $line; $hash{$key} = \@array; 
} 
print Dumper(\%hash); 
close $fh;
perl hash i.e output should look like:
$sw_ver_db = {
  s1 => {
    msword  =>  {ver => v2},
    paint   =>  {ver => v4},
    outlook =>  {ver => v1}, },
  s2 => {
    msword  =>  {ver => v3},
    paint   =>  {ver => v2},
    outlook =>  {ver => v1}, },
  s3 => {
    msword  =>  {ver =>v1},
    paint   =>  {ver =>v3},
    outlook =>  {ver =>v3}, },
  s4 => {
    msword  =>  {ver =>v1},  
    paint   =>  {ver =>v3},  
    outlook =>  {ver =>v2}, },
};