Creating an enum from its name not value Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!What does the [Flags] Enum Attribute mean in C#?Cast int to enum in C#How can I represent an 'Enum' in Python?Create Generic method constraining T to an EnumHow do I enumerate an enum in C#?What is the preferred syntax for defining enums in JavaScript?How to get an enum value from a string value in Java?Get int value from enum in C#How to loop through all enum values in C#?Comparing Java enum members: == or equals()?

How many morphisms from 1 to 1+1 can there be?

Trademark violation for app?

How long can equipment go unused before powering up runs the risk of damage?

What does it mean that physics no longer uses mechanical models to describe phenomena?

macOS: Name for app shortcut screen found by pinching with thumb and three fingers

What does 丫 mean? 丫是什么意思?

How do I find out the mythology and history of my Fortress?

What are the discoveries that have been possible with the rejection of positivism?

An adverb for when you're not exaggerating

How would a mousetrap for use in space work?

What does Turing mean by this statement?

Output Devanagari (Hindi) from raw unicode using luatex

What would you call this weird metallic apparatus that allows you to lift people?

How can I prevent/balance waiting and turtling as a response to cooldown mechanics

Do wooden building fires get hotter than 600°C?

The test team as an enemy of development? And how can this be avoided?

What order were files/directories output in dir?

The Nth Gryphon Number

What do you call the main part of a joke?

Random body shuffle every night—can we still function?

sinunitx package

Karn, the Great Creator - what defines a 'card from outside the game' in sealed?

How does light 'choose' between wave and particle behaviour?

Has negative voting ever been officially implemented in elections, or seriously proposed, or even studied?



Creating an enum from its name not value



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Data science time! April 2019 and salary with experience
The Ask Question Wizard is Live!What does the [Flags] Enum Attribute mean in C#?Cast int to enum in C#How can I represent an 'Enum' in Python?Create Generic method constraining T to an EnumHow do I enumerate an enum in C#?What is the preferred syntax for defining enums in JavaScript?How to get an enum value from a string value in Java?Get int value from enum in C#How to loop through all enum values in C#?Comparing Java enum members: == or equals()?



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








7















Given the enumeration



enum NATO (:alpha<A>, :bravo<B>, :charlie<C>, :delta<D>);


it's possible to easily set a variable by literally typing one of the names, or by passing one of the values to the enum object:



my $a = alpha;
my $b = NATO('B');

say $a; # ↪︎ alpha
say $b; # ↪︎ bravo
say $a.value; # ↪︎ A
say $b.value; # ↪︎ B


Besides using EVAL and given a Str that corresponds to one of the enums, how could I create $c to be an enum value equivalent to charlie?



my $x = 'charlie';
my $c = ...









share|improve this question




























    7















    Given the enumeration



    enum NATO (:alpha<A>, :bravo<B>, :charlie<C>, :delta<D>);


    it's possible to easily set a variable by literally typing one of the names, or by passing one of the values to the enum object:



    my $a = alpha;
    my $b = NATO('B');

    say $a; # ↪︎ alpha
    say $b; # ↪︎ bravo
    say $a.value; # ↪︎ A
    say $b.value; # ↪︎ B


    Besides using EVAL and given a Str that corresponds to one of the enums, how could I create $c to be an enum value equivalent to charlie?



    my $x = 'charlie';
    my $c = ...









    share|improve this question
























      7












      7








      7








      Given the enumeration



      enum NATO (:alpha<A>, :bravo<B>, :charlie<C>, :delta<D>);


      it's possible to easily set a variable by literally typing one of the names, or by passing one of the values to the enum object:



      my $a = alpha;
      my $b = NATO('B');

      say $a; # ↪︎ alpha
      say $b; # ↪︎ bravo
      say $a.value; # ↪︎ A
      say $b.value; # ↪︎ B


      Besides using EVAL and given a Str that corresponds to one of the enums, how could I create $c to be an enum value equivalent to charlie?



      my $x = 'charlie';
      my $c = ...









      share|improve this question














      Given the enumeration



      enum NATO (:alpha<A>, :bravo<B>, :charlie<C>, :delta<D>);


      it's possible to easily set a variable by literally typing one of the names, or by passing one of the values to the enum object:



      my $a = alpha;
      my $b = NATO('B');

      say $a; # ↪︎ alpha
      say $b; # ↪︎ bravo
      say $a.value; # ↪︎ A
      say $b.value; # ↪︎ B


      Besides using EVAL and given a Str that corresponds to one of the enums, how could I create $c to be an enum value equivalent to charlie?



      my $x = 'charlie';
      my $c = ...






      enums perl6






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 4 hours ago









      guifaguifa

      245111




      245111






















          2 Answers
          2






          active

          oldest

          votes


















          5














          You can use indirect name lookup:



          enum NATO (:alpha<A>, :bravo<B>, :charlie<C>);
          my $x = 'charlie';
          my $c = ::($x);
          say $c.value;





          share|improve this answer


















          • 1





            Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

            – guifa
            4 hours ago


















          5














          You can treat it as a Hash:



          my $c = NATO::$x;





          share|improve this answer























          • Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

            – guifa
            4 hours ago











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55769656%2fcreating-an-enum-from-its-name-not-value%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5














          You can use indirect name lookup:



          enum NATO (:alpha<A>, :bravo<B>, :charlie<C>);
          my $x = 'charlie';
          my $c = ::($x);
          say $c.value;





          share|improve this answer


















          • 1





            Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

            – guifa
            4 hours ago















          5














          You can use indirect name lookup:



          enum NATO (:alpha<A>, :bravo<B>, :charlie<C>);
          my $x = 'charlie';
          my $c = ::($x);
          say $c.value;





          share|improve this answer


















          • 1





            Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

            – guifa
            4 hours ago













          5












          5








          5







          You can use indirect name lookup:



          enum NATO (:alpha<A>, :bravo<B>, :charlie<C>);
          my $x = 'charlie';
          my $c = ::($x);
          say $c.value;





          share|improve this answer













          You can use indirect name lookup:



          enum NATO (:alpha<A>, :bravo<B>, :charlie<C>);
          my $x = 'charlie';
          my $c = ::($x);
          say $c.value;






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 4 hours ago









          ugexeugexe

          2,7571529




          2,7571529







          • 1





            Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

            – guifa
            4 hours ago












          • 1





            Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

            – guifa
            4 hours ago







          1




          1





          Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

          – guifa
          4 hours ago





          Thanks! (I figured with docs being offline it was a good time to start posting questions on SO)

          – guifa
          4 hours ago













          5














          You can treat it as a Hash:



          my $c = NATO::$x;





          share|improve this answer























          • Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

            – guifa
            4 hours ago















          5














          You can treat it as a Hash:



          my $c = NATO::$x;





          share|improve this answer























          • Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

            – guifa
            4 hours ago













          5












          5








          5







          You can treat it as a Hash:



          my $c = NATO::$x;





          share|improve this answer













          You can treat it as a Hash:



          my $c = NATO::$x;






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 4 hours ago









          Curt TilmesCurt Tilmes

          2,2941721




          2,2941721












          • Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

            – guifa
            4 hours ago

















          • Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

            – guifa
            4 hours ago
















          Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

          – guifa
          4 hours ago





          Ah, I needed the double colon. I definitely had tried just using the NATO$x to no avail. Thanks for a great alternate answer (it's longer than @ugexe 's, but for situations where ::($x) won't make it obvious what's going on, Foo::$x will make it crystal clear.

          – guifa
          4 hours ago

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55769656%2fcreating-an-enum-from-its-name-not-value%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          کانن (شرکت) محتویات تاریخچه[ویرایش] بخشی از تولیدات موفق این شرکت[ویرایش] در رده APS-C[ویرایش] گزارش محیط زیست[ویرایش] رده‌بندی محصولات[ویرایش] منابع[ویرایش] پانویس[ویرایش] پیوند به بیرون[ویرایش] منوی ناوبریwww.canon.comموزه آنلاین دوربین‌های کانننمودار تاریخچه سهام کاننوبگاه رسمی شرکت کاننوووووIDC Worldwide Hardcopy 2013

          Rest API with Magento using PHP with example. Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How to update product using magento client library for PHP?Oauth Error while extending Magento Rest APINot showing my custom api in wsdl(url) and web service list?Using Magento API(REST) via IXMLHTTPRequest COM ObjectHow to login in Magento website using REST APIREST api call for Guest userMagento API calling using HTML and javascriptUse API rest media management by storeView code (admin)Magento REST API Example ErrorsHow to log all rest api calls in magento2?How to update product using magento client library for PHP?

          Magento 2 - Auto login with specific URL Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Customer can't login - Page refreshes but nothing happensCustom Login page redirectURL to login with redirect URL after completionCustomer login is case sensitiveLogin with phone number or email address - Magento 1.9Magento 2: Set Customer Account Confirmation StatusCustomer auto connect from URLHow to call customer login form in the custom module action magento 2?Change of customer login error message magento2Referrer URL in modal login form