#!/usr/bin/perl use warnings; use strict; my $infile = $ARGV[ 0 ]; my $outfile = "sliced_$infile"; open my $INFILE, '<', $infile or die "Cannot open '$infile' $!"; open my $OUTFILE, '>', $outfile or die "Cannot open '$outfile' $!"; my %flights; while ( <$INFILE> ) { my ( $hour, $rest ) = /(\d+):\d+(.+)/; push @{ $flights{ $hour } }, $rest; } for my $hour ( keys %flights ) { my $interval = 60 / @{ $flights{ $hour } }; for my $i ( 0 .. $#{ $flights{ $hour } } ) { printf $OUTFILE "%02d:%02d%s\n", $hour, $i * $interval, $flights{ $hour }[ 0 ]; } } __END__