in reply to Hash of Array references

I'd suggest using a hash of hashes for your data:

#!/usr/bin/perl use strict; use warnings; use feature qw/say/; my $result = q/ number 1234567 user: sam # changed abc in the file. number 5646542 user: john # deleted asds in the file. /; my %parsed_results = (); while($result =~ /number (\d+).*user:\s*(\S+)\s*#\s*(.*)/g) { $parsed_results{$1} = { 'user' => $2, 'comment' => $3, } } print "Enter a number: "; chomp(my $number = <STDIN>); if(exists $parsed_results{$number}) { say "User : ", $parsed_results{$number}->{'user'}; say "Comment: ", $parsed_results{$number}->{'comment'}; } else { say "Not found: $number"; }