in reply to difference between ($scalar) and $scalar

The difference is that one can possibly land you in jail, while the other won't. Or something to that effect.

I'm a particular fan of brackets, even when not strictly necessary, but I have been warned that this does have some side-effects on commands that are sensitive to the calling context. Maybe your biggest fear is only the Perl Police.

Certain commmands do different things in different contexts. Consider an example from the above article:
my ($fortune) = `fortune`;
When the backtick detects "array context", it splits up the lines returned by the command into an array and returns it. $fortune then gets the first element/line and the rest go unassigned.
my $fortune = `fortune`;
In scalar context, the entire result is returned in one string, meaning that the linefeeds are not split.

Or compare the two here, using the context sensitive localtime function:
my ($time1) = localtime; my $time2 = localtime; print "$time1 / $time2\n";
This prints, for me at least: "42 / Sat Jul 21 03:02:42 2001", which shows you how important those brackets can be.

Replies are listed 'Best First'.
Re: Re: difference between ($scalar) and $scalar
by John M. Dlugosz (Monsignor) on Jul 22, 2001 at 01:08 UTC
    The difference is that one can possibly land you in jail, while the other won't. Or something to that effect.

    Very interesting! But I wonder how the administrators could see it at all, if the school's proxy was blocked by the firewall?