Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Inheritance in Hash

by Miguel (Friar)
on Apr 21, 2005 at 02:59 UTC ( #449846=note: print w/ replies, xml ) Need Help??


in reply to Inheritance in Hash

And another way could be something like:

#!/usr/bin/perl -w use strict; my $data = { Colour => 'blue', Entries => { Flowers => { Dahlia => { Smell => 'nice' }, Rose => { Colour => 'red' } } } }; my $ref_flowers = $data->{Entries}->{Flowers}; my $colour = sub{my $fl=shift; $ref_flowers->{$flw}->{Colour}}; my $smell = sub{my $fl=shift; $ref_flowers->{$flw}->{Smell}}; print "Rose's color is ",$colour->('Rose'),".\n" if $colour->('Rose'); print "Dahlia smells ",$smell->('Dahlia'),".\n" if $smell->('Dahlia'); __OUTPUT__ Rose's color is red. Dahlia smells nice.
Miguel


Comment on Re: Inheritance in Hash
Download Code
Re^2: Inheritance in Hash
by ikegami (Pope) on Apr 21, 2005 at 04:21 UTC
    print "Dahlia's color is ",$colour->('Dahlia'),".\n"
    doesn't print "blue", as requested.
      You're right.
      #!/usr/bin/perl -w use strict; my $data = { Colour => 'blue', Entries => { Flowers => { Dahlia => { Smell => 'nice' }, Rose => { Colour => 'red' } } } }; my $ref_flowers = $data->{Entries}->{Flowers}; my $colour = sub { my $flw=shift; $ref_flowers->{$flw}->{Colour} || $data->{Colour} }; print "Rose's color is ",$colour->('Rose'),"\n"; print "Dahlia's color is ", $colour->('Dahlia'),"\n"; __output__ Rose's color is Red. Dahlia's color is Blue.
      Miguel

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (10)
As of 2014-12-28 03:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (178 votes), past polls