Pass array to a function

In reply to dave_59:

In reply to verif_learner:
Usually, the packet is a class object with an arrays as a member. You just pass the object’s handle as an input to the function.
If you make sure you always use a dynamic array, you can pass an array by reference.

module x;
function func1 (ref int a [5]);
$display ("%p", a);
endfunction
initial begin
int a [];
a = {1,2,3,4,5};
func1(a);
end
endmodule

Dave,

I am going through LRM section 7.7.
This is what it says,

A subroutine that accepts a dynamic array or queue can be passed a dynamic array, queue, or fixed-size array of a compatible type.
For example, the declaration
task t ( string arr );
declares a task that accepts one argument, a dynamic array of strings. This task can accept any onedimensional unpacked array of strings or any one-dimensional dynamic array or queue of strings.

I am interpreting this as if the formal argument to the function is dynamic array then one can call this function with another dynamic array.
Am I interpreting something incorrectly?