Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use v5.12;
- #use Test::More;
- #use Modern::Perl;
- use Modern::Perl 2011;
- use autodie;
- use Data::Dumper;
- ## Example from here:
- # http://modernperlbooks.com/books/modern_perl_2014/03-perl-language.html#TmVzdGVkRGF0YVN0cnVjdHVyZXM
- ## Perl Version
- # $ perl -v
- # This is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-thread-multi-2level
- # (with 2 registered patches, see perl -V for more detail)
- ## Code snippet below did not work, got undefined values.
- ## Had to first declare 'entree' with my in one statement, then assign to it.
- ## Question: Wondering why this has to be so, and why the book version does not work, as
- ## it seems that it should.
- my %meals = (
- breakfast => { entree => 'eggs',
- side => 'hash browns' },
- lunch => { entree => 'panini',
- side => 'apple'},
- dinner => { entree => 'steak',
- side => 'avocado salad' },
- );
- ## Work on structure
- ## From the book:
- my ($entree, $side) = @{ $_ }{qw(entree side)} for $meals{breakfast};
- defined $entree ? say "book version entree defined." : say "book version entree NOT defined.";
- ## Output:
- #book version entree NOT defined.
- ## How I made work
- my ($entree2, $side2);
- ($entree2, $side2) = @{ $_ }{qw(entree side)} for $meals{breakfast};
- defined $entree2 ? say "predeclare entree2 defined." : say "predelcare entree2 NOT defined.";
- ## Output:
- #predeclare entree2 defined.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement