The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Acme::Given::Hash - you like given but it's too much typing.

SYNOPSIS

  use Acme::Given::Hash;
  my $result = $given ~~ gvn { $value1 => $scalar
                             , $value2 => do { ... }
                             , $value3 => sub{ ... }
                             };

  # is going to result in the same thing as: 
  given($given) {
    when ($value1) { $result = $scalar }
    when ($value2) { $result = do{ ... }}
    when ($value3) { $result = sub{...}->() }
  };

EXPORTED FUNCTIONS

gvn

  my $given_hash_obj = gvn {...}; 

This is really just a simple constructor that blesses the given hashref to an object where ~~ is overridden as to trip the value of the hash rather then check to see if the key exists.

TODO

non-scalar matches

Currently the expectation is that you are matching a scalar as one would expect for a given/switch statement, it's not a hard problem to deal with arrays. Though currently there is no need to do this, possibly in the future?

AUTHORS

NOTBENH <ben hengst> wrote this but it was heavly inspired by the team over at Puppet Labs as they have something like this.

SOURCE

All on Github: https://github.com/notbenh/Acme-Given-Hash

BUGS

Issues on Github: https://github.com/notbenh/Acme-Given-Hash/issues

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html