use Modern::Perl; # updates request_storage.concentration value from csv file use lib '/home/raj/apps/HILIS4/lib'; use LIMS::Local::ScriptHelpers; use Data::Printer alias => 'ddp'; use Text::CSV; use IO::File; my $tools = LIMS::Local::ScriptHelpers->new(); my $dbix = $tools->dbix(); my $src_file = './Requantification.csv'; my $io = new IO::File; open( $io, '<', $src_file ) || die $!; my $opt = { binary => 1 }; # recommended to set true my $csv = Text::CSV->new($opt); # ddp $csv; exit; my $head = $csv->getline($io); $csv->column_names( $head ); my $i = 0; my $tbl = 'hilis4.request_storage'; while ( my $ref = $csv->getline_hr($io) ) { # ddp $ref; my $old_conc = $ref->{old_concentration}; my $new_conc = $ref->{concentration}; my $vial_id = $ref->{vialId}; my %args = ( vialId => $vial_id, concentration => $old_conc ); unless ( $dbix->select($tbl, 1, \%args )->list ) { warn "$vial_id not $old_conc"; next; } $dbix->update($tbl, { concentration => $new_conc }, { vialId => $vial_id } ); $i++; } warn "updated $i records";