use warnings; use strict; use Data::Dumper; local $/ = ""; # "paragraph mode" my %records; while () { chomp; my @rows = split /\n/; # break apart lines my $key = shift @rows; # first line is hash key $records{$key} = \@rows; # store reference to array in hash } print Dumper(\%records); __DATA__ arn:aws:iam::11111111111:role/ADFS-MyRoleName "Alexa for Business" "AWS Certificate Manager" "AWS Certificate Manager Private Certificate Authority" "AWS Amplify" "Manage - Amazon API Gateway" "AWS App Mesh" "Amazon AppStream 2.0" "AWS AppSync" "Amazon Athena" "AWS Auto Scaling" arn:aws:iam::12345678901:role/Role2-Role2 "Alexa for Business" "AWS Certificate Manager" "AWS Certificate Manager Private Certificate Authority" "AWS Amplify" "Manage - Amazon API Gateway" "Application Auto Scaling" "AWS App Mesh" "Amazon AppStream 2.0" "AWS AppSync" #### $VAR1 = { 'arn:aws:iam::11111111111:role/ADFS-MyRoleName' => [ '"Alexa for Business"', '"AWS Certificate Manager"', '"AWS Certificate Manager Private Certificate Authority"', '"AWS Amplify"', '"Manage - Amazon API Gateway"', '"AWS App Mesh"', '"Amazon AppStream 2.0"', '"AWS AppSync"', '"Amazon Athena"', '"AWS Auto Scaling"' ], 'arn:aws:iam::12345678901:role/Role2-Role2' => [ '"Alexa for Business"', '"AWS Certificate Manager"', '"AWS Certificate Manager Private Certificate Authority"', '"AWS Amplify"', '"Manage - Amazon API Gateway"', '"Application Auto Scaling"', '"AWS App Mesh"', '"Amazon AppStream 2.0"', '"AWS AppSync"' ] };