#!/usr/bin/perl use strict; use warnings; my $ifile = "medica.csv"; my $ofile = "med0.csv"; my %meds; my %patients; open IDF, "<$ifile" or die "No such file"; while () { (my $gay_id, my $ldata) = /^.*;(\d*)\.0;(.*)$/; if ($ldata){ my @list = split /, /, $ldata; foreach my $med (@list){ if ($med) { $meds{$med} = 1; $patients{$gay_id}{$med} = 1; } } } } close IDF; open ODF, ">$ofile" or die "Could not open file!!!"; print ODF "Interno"; foreach my $med (sort keys %meds){ print ODF ",$med"; } print ODF "\n"; foreach my $patient (sort keys %patients){ print ODF "$patient"; foreach my $med (sort keys %meds){ if(exists($patients{$patient}{$med})){ print ODF ",1"; }else{ print ODF ",0"; } } print ODF "\n"; } close ODF;