#!/usr/bin/perl use strict; use warnings; use Switch; my $srcdir = "D:/source/"; my $srcfile = $srcdir."money.dat"; open (READ, "< $srcfile") || die "Can't find the dat file\n"; my ($date, $expense, $income); my $epochToday = time; my $last30days = $epochToday - 2592000; my ($year, $month, $day) = (localtime($last30days))[5,4,3]; $month++; $year+=1900; my $mon; switch ($month) { case [1] {$mon="Jan"} case [2] {$mon="Feb"} case [3] {$mon="Mar"} case [4] {$mon="Apr"} case [5] {$mon="May"} case [6] {$mon="Jun"} case [7] {$mon="Jul"} case [8] {$mon="Aug"} case [9] {$mon="Sep"} case [10] {$mon="Oct"} case [11] {$mon="Nov"} case [12] {$mon="Dec"} } my $lastdate = $day."-".$mon."-".$year; my $read; my $total; while () { chop; ($date, $expense, $income) = split(/,/,$_); $total = $expense+$income; @data_date = ($date); MY PROBLEM STARTS HERE!!!!! if($lastdate =~ /^@data_date/) { } @data = ($total); push @data, [@data_date]; push @recent, [@data]; $read++; } close READ || die "Couldn't close the dat file"; my $desdir = "D:/target/"; my $desfile = $desdir."total.csv"; open (WRITE, "< $desfile") || die "Can't find the csv file.\n"; my $y=0; foreach(@recent) { $printout .= "$recent[$y][0],$recent[$y][1]\n"; $y++; } print WRITE $printout; close WRITE || die "Couldn't close the csv file.\n"; exit ;