in reply to Declaring my $var versus declaring my($var)

If you initialize your variables, the () makes a difference: context.
use strict; use warnings; sub print_context { say wantarray ? 'list' : 'scalar'; } my $x = print_context; my ($y) = print_context; __END__ scalar list

Examples where this makes a difference:

my $time1 = localtime; my ($time2) = localtime; my $rev1 = reverse $some_string; my ($rev2) = reverse $some_string;

Replies are listed 'Best First'.
Re^2: Declaring my $var versus declaring my($var)
by dh1760 (Acolyte) on Jun 10, 2011 at 14:25 UTC

    Now I understand why "in scalar context returns ..." has sometimes not returned what I expected. Amazing that I've probably coded tens of thousands of lines of perl over the years and have rarely been bitten by this difference. I suspect it's because any time it has caused an unexpected result, I've just figured out a different way to get what I needed.

    I guess we're never too old to learn ... thanks for the lesson!

    --
    DaveH (dh1760)