Beefy Boxes and Bandwidth Generously Provided by pair Networks vroom
P is for Practical
 
PerlMonks  

Re: More elegant way of doing "ordered hash"?

by boftx (Hermit)
on Oct 09, 2013 at 22:19 UTC ( #1057627=note: print w/ replies, xml ) Need Help??


in reply to More elegant way of doing "ordered hash"?

Right off the top it looks like the 'define_method' code is accepting the value for 'Parameters' as a hash ref instead of an array ref so I'm not sure you are going to be keeping the order of the keys to begin with, especially with the latest version of Perl.

That aside, unless you are in a position to rewrite the app (which I would guess is significant in size) to use named parameters instead of positional you have probably come up with the best way to do what you want. The entire problem disappears if you can switch to named params. Plus, you can take advantage of CPAN modules to enforce type checking, etc, like you are currently doing.

Of course, if you can make the change, then go whole-hog and covert to Moose since what you have here looks a lot like someone tried to invent Moose with positional params.

On time, cheap, compliant with final specs. Pick two.


Comment on Re: More elegant way of doing "ordered hash"?
Re^2: More elegant way of doing "ordered hash"?
by PopeFelix (Sexton) on Oct 10, 2013 at 19:36 UTC

    Value for Parameters is an arrayref.

    As for sending named parameters, I can't do that because what I'm doing is wrapping XML-RPC calls to Magento, and I haven't found a way to get XML::RPC to send named params.

    And yes, this was partially inspired by Moose. :)

      whoops! There was a typo there. Parameters should definitely be an arrayref in define_api_method

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (11)
As of 2014-04-18 15:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (469 votes), past polls