In common with others, I'm not sure how this question relates to your OP ([ 3,2,2,3,3,3,1 ] doesn't look like a linked list to me, either), but I can answer your specific questions.
... what exact data type [is] $L ...
$L is a scalar. This is determined by the $ sigil before the symbol.
... how [does] the data set get passed into @_ and assigned to $L.
The expression [ 3,2,2,3,3,3,1 ] returns a reference (to an array). A reference is always a scalar value even though the referent, e.g., an array or hash, is not. A scalar is passed to a subroutine in the usual way:
c:\@Work\Perl>perl -wMstrict -le "my $arrayref = [ 3,2,2,3,3,3,1 ]; ;; sub func { my ($msg, $ar) = @_; ;; printf qq{$msg: scalar ref: $ar }; printf qq{'$_' } for @$ar; printf qq{(%d elements) \n}, scalar @$ar; } ;; func('A', [ 9, 8, 7 ]); func('B', $arrayref); " A: scalar ref: ARRAY(0x1cb226c) '9' '8' '7' (3 elements) B: scalar ref: ARRAY(0x6fd05c) '3' '2' '2' '3' '3' '3' '1' (7 elements +)
Update: Changed code example: added element count. Slight wording change.
Give a man a fish: <%-(-(-(-<
In reply to Re^3: Nodes count in Linked List
by AnomalousMonk
in thread Perl linked list
by Perl_is_Perl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |