in reply to Re^2: Combinations of lists, etc
in thread Combinations of lists to a hash
I'm now trying to change it so it handles the 4 updates in my original post. I see it already handles update #1 re the '*'. How does it do that, given that you're using glob?
Below is your code as a full script with my attempted changes to make it process all the data, and to handle updates #3 & #4 commented out because they don't work. Any suggestions on how to get them working? And how to best fit update #2 in to your code?
And how is '' => '}' replacing the line ending? I know \z matches the end, but those empty 'quotes' puzzle me.
#!/usr/bin/perl use strict; use warnings; my %globize = ('=' => '={', ':' => '}:{', '' => '}'); #my %globize = ('?What here?' => '{', ':' => '}:{', '' => '}'); my (@globs, %hash); while (<DATA>) { my ($globule, $value) = split / /; chomp $value; $globule =~ s{ ([=:] | \z) }{$globize{$1}}xmsg; #$globule =~ s{ (\A | : | \z) }{$globize{$1}}xmsg; print qq{'$globule'}."\n"; @globs = glob $globule; $hash{$_} = $value for @globs; } use Data::Dump; dd \%hash; __DATA__ Prefix1:A,B:c,d value1=10 Prefix2:A:b,c:1,2 value2=20 Prefix3:A:*:1,2 value3=30 Prefix4:A:*:1,2 value4a=10|value4b=20 Prefix5,Prefix6:A:*:1,7 value5=10
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Combinations of lists, etc
by AnomalousMonk (Archbishop) on Oct 07, 2019 at 00:15 UTC | |
by tel2 (Pilgrim) on Oct 07, 2019 at 02:13 UTC |