in reply to Rosetta Code Error or $n // 100
When continued_fraction($x,$y,$z) is called, the parameters $x, $y, $z are
assigned to the list @_ which is visible locally inside the sub and
can be addressed in the usual way like $_[0], $_[1]...
Here, @_[0,1] is an array-slice equivalent to the list ($_[0], $_[1]).
BTW: Accessing @_ is "call-by-reference" style. Assigning to i.e $_[0] inside the sub would change callers $x in the example above.
Usually, you would create a local copy, i.e. my (@args) = @_;. Accessing @_ might be used here for speed-optimisation or because of bad style?
Perl historically had no strict function/sub signatures, so you can pass any number of arguments
without Perl complaining - that feature
was added recently (Perl 5.20, experimental).
So, if the third - obviously optional parameter is given, it is used. If not, the default value 100 is assigned to $n.
|
---|