NetWallah has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to automate building a dispatch table - or at least, to minimize keystrokes.
Please suggest ways to achieve the desired result:
This currently prints:use strict; use warnings; my %dispatch = ( normal => sub{"$_[0] Normal dispatch"}, map( {$_ => sub{"$_[0] Sub returns $_"} } qw| Uno Dos tres|), ); print $dispatch{"normal"}->(0),"\n"; # 0 Normal dispatch (as expected) + print $dispatch{"Uno"}->(1),"\n"; # WANT: "1 Sub returns Uno" print $dispatch{"Dos"}->(2),"\n"; # WANT: "2 Sub returns Dos"
Also - is there a NAME for what I am attempting ? "Early evaluation of $_" ?0 Normal dispatch Use of uninitialized value $_ in concatenation (.) or string at .\test +dispatch.pl line 5. 1 Sub returns Use of uninitialized value $_ in concatenation (.) or string at .\test +dispatch.pl line 5. 2 Sub returns
"Avoid strange women and temporary variables."
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Attempting to use $_ in "sub" inside "map" (updated)
by AnomalousMonk (Bishop) on May 08, 2021 at 05:02 UTC | |
by NetWallah (Canon) on May 08, 2021 at 05:26 UTC | |
by LanX (Sage) on May 08, 2021 at 07:55 UTC | |
by AnomalousMonk (Bishop) on May 08, 2021 at 09:47 UTC | |
by tobyink (Canon) on May 10, 2021 at 14:30 UTC | |
by LanX (Sage) on May 10, 2021 at 14:40 UTC |
Back to
Seekers of Perl Wisdom