#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash; open my $fh, '<', $ARGV[0] or die "could not open $ARGV[0]'' $!"; while (my $line = <$fh>) { $line =~/;(.*)\s-\s/; my $key = $1; print "KEY:$key\n"; $line =~/\.\\(.*)-/; my $value = $1; print "VALUE:$value\n"; $hash{$key}=$value; } print Dumper(\%hash);