#!/usr/bin/env perl use strict; use warnings; use autodie; my $file = 'info.out'; my %repo_for; { open my $fh, '<', $file; local $/ = "\nInformation for package "; while (<$fh>) { next unless /\A([^:]+).*?Repository\s+:\s(\S+)/ms; $repo_for{$1} = $2; } } # For demo use Data::Dump; dd \%repo_for;