Hash Slicesuse Modern::Perl;
my $input_line = shift;
my %colors = (
red => 'apple',
green => 'leaves',
blue => 'ocean',
);
$colors{"red"} = 'apple';
$colors{"green"} = 'leaves';
$colors{"blue"} = 'ocean';
( $colors{"red"}, $colors{"green"}, $colors{"blue"} ) =
( 'apple', 'leaves', 'ocean' );
@colors{ "red", "green", "blue" } = ( 'apple', 'leaves', 'ocean' );
my @avaible_colors = qw(red green blue);
my @avaible_things = qw(apple leaves ocean);
@colors{@avaible_colors} = @avaible_things;#1
#for ref
my $ref_colors = \%colors;
@{$ref_colors}{@avaible_colors} = @avaible_things;#the same as 1 but for ref
say $colors{$input_line};
say ${$ref_colors}{$input_line};
say "@{$ref_colors}{@avaible_colors}";
# http://docstore.mik.ua/orelly/perl/learn/ch05_05.htm
# http://www.webquills.net/web-development/perl/perl-5-hash-slices-can-replace.html |
| | Perl short tipsMerge Hash slow (merge %score into %league) %league = (%league, %score); | Merge Hash faster %league{keys %score} = values %score; | Write array to file. use File::Slurp qw( :std ); my @vip_array_out = map { "$_\n" } @vip_array; | the same my $vip_string_out = join "\n", @vip_array; | slow write_file( 'file', @vip_array_out );# | faster write_file( 'file', \@vip_array_out );# | faster then $vip_string_out write_file( 'file', \$vip_string_out ); | Split by WORD my @words = split /\W+/, @input_lines; | Get unique words my %seen; map { $seen{$_}++ } @words; | Sort the words in ascending ASCII order in the output for my $word ( sort keys %seen ) { say "for $word $seen{$word}"; } | Save hash in insert order use Tie::IxHash; | tie %sort_seen, "Tie::IxHash"; use Data::Dumper; | $Data::Dumper::Terse = 1; map { $sort_seen{$_} = $seen{$_} } sort keys %seen; | print Dumper \%sort_seen; |
| | Read configuse YAML::Tiny;
use Carp;
use English;
my $conf =
YAML::Tiny::LoadFile('config.yml')
or croak "Couldn't open YAML::Tiny->errstr: $OS_ERROR";
my $user = $conf->{user};
my $password = $conf->{password};
config.yml is
---
user: 'mishin'
password: 'secret_pw' |
Slicesarray slice ($him, $her) = @folks[0,-1]; | @them = @folks[0 .. 3]; | hash slice ($who, $home) = @ENV{"USER", "HOME"}; | list slice ($uid, $dir) = (getpwnam("daemon"))[2,7]; | @days[3..5] = qw/Wed Thu Fri/; @colors{'red','blue','green'} = (0xff0000, 0x0000ff, 0x00ff00); | @folks[0, -1] = @folks[-1, 0]; |
|
Created By
mishin.narod.ru
Metadata
Favourited By
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by mishin