#!/usr/bin/perl use warnings; use strict; use Text::xSV; my $csv = new Text::xSV; $csv->set_row_size_warning(0); $csv->read_header(); print "Task\tDuration\tDue\tFlagged\n"; print "STRING\tFLOAT\tDATE\tINTEGER\n"; while ( $csv->get_row() ) { my ( $TaskID, $Task, $Duration, $DueDate, $Flagged ) = $csv->extract( ( "Task ID", "Task", "Duration", "Due Date", "Flagged" ) ); if ($Duration) { if ( !( $Duration =~ /m$/ ) ) { die "Unknown Duration: $Duration"; } $Duration =~ s/m$//; if(!$DueDate) { $DueDate = "";} $DueDate =~ s/ .*//g; $DueDate =~ s/(.*?)-(.*?)-(.*)/$2\/$3\/$1/g; $TaskID =~ s/\./\t/g; print "$Task\t$Duration\t$DueDate\t$Flagged\t\t$TaskID\n"; } }