ich versuchs mal zu erklären:
wenn du eine liste übergibst, bekommst du auch eine liste in @_. dabei ist es egal, was in der liste drin steht. wenn du also einen scalar und einen array übergibst, bekommst du eine liste mit dem wert des scalars und den werten des arrays.
du solltest also eine
referenz auf das array übergeben. z.b.
myfunc( $scalar, \@array );. durch das \ vor der variable beinhaltet der ausdruck jetzt nicht den array, sondern eine referenz auf den array. in der sub könntest du dann folgendermassen an die werte kommen
my ( $scalar, $array_referenz ) = @_;.
wie man mit referenzen und komplexeren datenstrukturen umgeht lernst du in
perldoc reftut und
perldoc perllol
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B