#! /usr/bin/perl
use strict;
use warnings;
my $f = sub {
return @_ == 1
? undef
: ( [ splice @_, -2 ], @_ == 1 ? () : &{ $_[0] }(@_) );
};
map { print "$_->[0] -> $_->[1]\n" }
$f->( $f, %{ { x => 5, y => 8, z => 42 } } );
####
z -> 42
x -> 5
y -> 8
##
##
#! /usr/bin/perl
use strict;
use warnings;
map { print "$_->[0] -> $_->[1]\n" } &{
sub {
return @_ == 1
? undef
: ( [ splice @_, -2 ], @_ == 1 ? () : &{ $_[0] }(@_) );
}
}(
sub {
return @_ == 1
? undef
: ( [ splice @_, -2 ], @_ == 1 ? () : &{ $_[0] }(@_) );
},
%{ { x => 5, y => 8, z => 42 } }
);