#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Time::HiRes qw(time); my $file = 'test.txt'; open my $fh, '<', $file or die $!; my @diff = <$fh>; close $fh; print time,"\n"; my @order; foreach (@diff ){ if ( $_ =~ m/^(.+):\s+\/.+:$/) { push @order, [$1."\n"]; } elsif ( $_ =~ m/^(\d+)\s+(.+)\s+(.)\s+(\d+)\s+(.+)\s+$/ ) { if ($3 eq "\|") { push @{ $order[-1] },"\t$2\t$1\t$4\t" . "Diff: " . abs($1 - $4) . "\n"; } elsif ($3 eq "\<") { push @{ $order[-1] }, "\tNew File:\t$5\tSize: $4\n"; } elsif ($3 eq "\>") { push @{ $order[-1] },"\tFile deleted:\t$5\n"; } } } print time,"\n";