#!/usr/bin/perl use Carp; my $ret; undef $ret; ($ret) ||= foo(); warn "ret is $ret"; undef $ret; ($ret) = $ret || foo(); warn "ret is $ret"; sub foo { carp "Want " . (wantarray ? "array" : "scalar"); (1,2); }