#!/usr/bin/perl -w use strict ; use warnings ; use Data::Dumper ; my %data = () ; while( my $line = ) { if( my ( $model , $color ) = ( $line =~ m/^\d{4}\.\d{2}\.\d{2}\s+\d{2}:\d{2}:\d{2}\s+(\S+)\s+(\S+)/ ) ) { if( ! exists $data{$model} ) { $data{$model} = {} ; } if( ! exists $data{$model}->{$color} ) { $data{$model}->{$color} = 0 ; } $data{$model}->{$color}++ ; } } $Data::Dumper::Indent = 1 ; printf "Data:\n%s\n" , Dumper( \%data ) ; exit ; __DATA__ 2010.09.15 06:01:55 TZ_19_C blau 2010.09.15 06:02:15 FR_90_X schwarz 2010.09.15 06:05:15 TZ_19_C gelb 2010.09.15 06:05:35 TZ_19_B rot 2010.09.15 06:07:22 TZ_19_C blau 2010.09.15 06:07:42 FR_90_X rosa 2010.09.15 06:09:29 TZ_19_B rot 2010.09.15 06:09:49 FR_90_X rosa 2010.09.15 06:11:36 TZ_19_C gelb 2010.09.15 06:11:55 TZ_19_C blau