in reply to simple reference
( $filePrefix_In, @entries_In, $yr_ref, $mth_ref, $dt_ref ) = @_ ;
If you pass around an array, pass it as a reference, or pass it as the last item, since it will get flattened into a list. Your assignment to @entries_In gobbles up the references passed after the array, so at the top of your subroutine $yr_ref, $mth_ref, $dt_ref are all uninitialized. See perlsub.
Re-ordering your subroutine arguments makes a difference:
( $filePrefix_In, $yr_ref, $mth_ref, $dt_ref, @entries_In ) = @_ ;
Now @entries_In gets the rest of @_ - as before, but there aren't any more items after the original (now flattened) array.
|
|---|