use PDL::NiceSlice; sub kronecker_product { my ($x, $y) = @_; ( $x( *1, *1 ) * $y ) -> clump( 0, 2 ) -> clump( 1, 2 ) }