#!/usr/bin/perl use strict; use warnings; use Tie::File; tie my @array, 'Tie::File', "/the/file/in/question" or die "can't tie file"; my %data = map { split /:/; $_[0] => $_[1] } @array;