sub insert_after_first {
return if @_ < 3;
my ( $elem, $new, $front ) = splice @_, 0, 3;
return ( $front,
$front eq $elem
? ($new, @_ )
: insert_after_first( $elem, $new, @_ )
);
}
####
sub insert_after_first {
return if @_ < 3;
my ( $elem, $front ) = (splice(@_, 0, 1), splice(@_, 1, 1));
return ( $front,
$front eq $elem
? @_
: insert_after_first( $elem, @_ )
);
}
##
##
sub insert_after_first {
return if @_ < 3;
my $front = splice(@_, 2, 1);
return ( $front,
$front eq $_[0]
? @_[1..$#_]
: &insert_after_first
);
}