#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @data = (); while () { my $rec = {}; for ( split /\n/ ) { my @temp = split /\s/; $rec->{'time'} = $temp[0]; $rec->{'frame'} = $temp[1]; $rec->{'bytes'} = $temp[2]; } push @data, $rec; } print Dumper @data; __DATA__ 000.000-001.000 1 74 001.000-002.000 0 0 002.000-003.000 0 0 003.000-004.000 6 1300 004.000-005.000 16 3102 005.000-006.000 61 36106 006.000-007.000 5 3295 007.000-008.000 0 0 008.000-009.000 0 0 009.000-010.000 0 0 010.000-011.000 0 0 011.000-012.000 0 0