my $bar = expensive(); $foo = $bar if defined $bar; #### if (defined(my $bar = expensive())) { $foo = $bar; } #### $foo = $_ for grep defined, expensive(); #### sub assign_ifdef { $_[0] = $_[1] if defined($_[1]) } assign_ifdef($foo, expensive()); #### my $bar = expensive(); ($i1, $i2) = $bar if defined $bar; #### if (defined(my $bar = expensive()) { $_ = $bar for $i1, $i2; }