How do I initialize values in a hash without a loop?

前端 未结 4 535
夕颜
夕颜 2021-02-05 10:37

I am trying to figure out a way to initialize a hash without having to go through a loop. I was hoping to use slices for that, but it doesn\'t seem to produce the expected resul

相关标签:
4条回答
  • 2021-02-05 11:04

    For the first one, try

    my %hash = 
    ( "currency_symbol" => "BRL",
      "currency_name" => "Real"
    );
    print Dumper(\%hash);
    

    The result will be:

    $VAR1 = {
              'currency_symbol' => 'BRL',
              'currency_name' => 'Real'
            };
    
    0 讨论(0)
  • 2021-02-05 11:21
    use strict;
    use warnings;  # Must-haves
    
    # ... Initialize your arrays
    
    my @fields = ('currency_symbol', 'currency_name');
    my @array = ('BRL','Real');
    
    # ... Assign to your hash
    
    my %hash;
    @hash{@fields} = @array;
    
    0 讨论(0)
  • 2021-02-05 11:24

    So, what you want is to populate the hash using an array for the keys, and an array for the values. Then do the following:

    #!/usr/bin/perl
    use strict;
    use warnings;
    
    use Data::Dumper; 
    
    my %hash; 
    
    my @keys   = ("a","b"); 
    my @values = ("1","2");
    
    @hash{@keys} = @values;
    
    print Dumper(\%hash);'
    

    gives:

    $VAR1 = {
              'a' => '1',
              'b' => '2'
            };
    
    0 讨论(0)
  • 2021-02-05 11:24
        %hash = ('current_symbol' => 'BLR', 'currency_name' => 'Real'); 
    

    or

    my %hash = ();
    my @fields = ('currency_symbol', 'currency_name');
    my @array = ('BRL','Real');
    @hash{@fields} = @array x @fields;
    
    0 讨论(0)
提交回复
热议问题