Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: How to Map a scalar to a key that is an array?

by Cristoforo (Curate)
on Jul 31, 2019 at 22:04 UTC ( [id://11103676]=note: print w/replies, xml ) Need Help??


in reply to How to Map a scalar to a key that is an array?

This could be entered into a hash fairly simply. First set the filehandle to read in paragraph mode, (local $/ = ''), within a limited scope (determined by the enclosing braces, {  }). Then a simple split /\n/ will capture the key and the values in an array.

EDIT: added for loop that removes quotes from beginning and end of items in @data

Usage: perl my_program.pl input_file

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %data; { local $/ = ''; while (<>) { my ($key, @data) = split /\n/; for (@data) { s/^"//; s/"$//; } $data{$key} = \@data; } } $Data::Dumper::Indent=1; print Dumper \%data;
Prints:
$VAR1 = { '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' ], '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' ] };
(The output is a little messy due to the long key names.)

EDIT: Used Indent to Data::Dumper to clean up output from Dumper as noted by jdporter

Replies are listed 'Best First'.
Re^2: How to Map a scalar to a key that is an array?
by jdporter (Paladin) on Aug 01, 2019 at 21:47 UTC
    The output is a little messy due to the long key names

    Please use $Data::Dumper::Indent = 1;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11103676]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2024-04-24 05:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found