in reply to Re^2: Nodes count in Linked List
in thread Perl linked list
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: <%-(-(-(-<
|
|---|