#!/usr/bin/env perl use strict; use warnings; use DBI; my $table = "t.csv"; my $newtable = "tnew.csv"; my $dbh = DBI->connect ("dbi:CSV:") or die "Cannot connect: $DBI::errstr"; my $query = "SELECT * FROM $table"; my $sth = $dbh->prepare ($query); $sth->execute (); unlink $newtable; $dbh->do ("CREATE TABLE $newtable (vm_name char(0), vm_cluster char(0), zone char(0))") or die "Cannot prepare: " . $dbh->errstr (); my ($vm_name, $vm_cluster); $sth->bind_columns (\$vm_name, \$vm_cluster,undef); while ($sth->fetch) { $dbh->do ("INSERT INTO $newtable VALUES (". $dbh->quote ($vm_name) . ",". $dbh->quote ($vm_cluster) . ",". $dbh->quote (&whatzone()) . ")" ); } $sth->finish; #unlink $table; #rename $newtable,$table; sub whatzone { return "zone".(1+int rand(3)); }