my $foo = some_func(); if ('ARRAY' eq ref $foo) { push @data => @$foo; } else { push @data => $foo; } #### my $foo = some_func(); push @data => @$foo; #### sub some_func { my $self = shift; my @data = 'ARRAY' eq ref $_[0] ? @$_[0] : @_; # do stuff }