Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Inheritance in Hash

by Miguel (Friar)
on Apr 21, 2005 at 02:59 UTC ( [id://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

Replies are listed 'Best First'.
Re^2: Inheritance in Hash
by ikegami (Patriarch) 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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://449846]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2024-04-19 20:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found