in reply to Re: What should be returned in scalar context?
in thread What should be returned in scalar context?

But that make you do different things in scalar and list context from the callers point of view. Here are two examples where the caller does the same in scalar and list context. First one returns an iterator that is context aware, in the second example the function itself is a context aware iterator.
#!/usr/bin/perl use strict; use warnings; sub make_list { my @list = @_; my $count = 0; sub {wantarray ? do {$count = 0; @list} : $list [$count ++]} } my $list = make_list qw /red green blue white brown purple/; print scalar $list -> (), "\n"; print scalar $list -> (), "\n"; print join " " => $list -> (), "\n"; my @list = qw /one two three four five six/; my $count = 0; sub foo { wantarray ? do {$count = 0; @list} : $list [$count ++] } print scalar foo, "\n"; print scalar foo, "\n"; print join " " => foo, "\n"; __END__ red green red green blue white brown purple one two one two three four five six

Abigail