UR::Util(3pm)

path_relative_to
      $rel_path = UR::Util::path_relative_to($base, $target);

    Returns the pathname to $target relative to $base. If $base and $target are the same, then it returns '.'. If $target is a subdirectory of of $base, then it returns the portion of $target that is unique compared to $base. If $target is not a subdirectory of $base, then it returns a relative pathname starting with $base.

generate_readwrite_methods
      UR::Util->generate_readwrite_methods
      (
          some_scalar_property => 1,
          some_array_property => []
      );

    This method generates accessor/set methods named after the keys of its hash argument. The type of function generated depends on the default value provided as the hash key value. If the hash key is a scalar, a scalar method is generated. If the hash key is a reference to an array, an array method is generated.

    This method does not overwrite class methods that already exist.

generate_readwrite_methods_override
      UR::Util->generate_readwrite_methods_override
      (
          some_scalar_property => 1,
          some_array_property => []
      );

    Same as generate_readwrite_function except that we force the functions into the namespace even if the function is already defined

generate_readonly_methods
      UR::Util->generate_readonly_methods
      (
          some_scalar_property => 1,
          some_array_property => []
      );

    This method generates accessor methods named after the keys of its hash argument. The type of function generated depends on the default value provided as the hash key value. If the hash key is a scalar, a scalar method is generated. If the hash key is a reference to an array, an array method is generated.

    This method does not overwrite class methods that already exist.

mapreduce_grep
        my @matches = UR::Util->map_reduce_grep { shift->some_test } @candidates;

    Works similar to the Perl "grep" builtin, but in a possibly-parallel fashion. If the environment variable UR_NR_CPU is set to a number greater than one, it will fork off child processes to perform the test on slices of the input list, collect the results, and return the matching items as a list.

    The test function is called with a single argument, an item from the list to be tested, and should return a true of false value.

NAME
UR::Util - Collection of utility subroutines and methods

DESCRIPTION
This package contains subroutines and methods used by other parts of the infrastructure. These subs are not likely to be useful to outside code.