On Thu, Feb 15, 2001 at 10:29:33PM +0100, [EMAIL PROTECTED] wrote:
> On Thu, Feb 15, 2001 at 08:19:27PM +0000, Nicholas Clark wrote:
> > On Thu, Feb 15, 2001 at 09:05:55PM +0100, [EMAIL PROTECTED] wrote:
> > > On Thu, Feb 15, 2001 at 11:23:10AM -0800, Nathan Wiger wrote:
> > > > But I have never found a situation where this is so useful to justify
> > > > the other problems it creates. However, there may well be true technical
> > > > reasons why "my $x, $y, $z" does not do what many think it should.
> > >
> > > As I wrote elsewhere, other reasons not to change the behaviour of my:
> > >
> > > GetOptions (foo => \my $foo,
> > > bar => \my $bar);
> > >
> > > tie my $shoe => $tring;
> >
> > Hmm. Nathan's example of my is in void context
> > Abigail's are not.
> >
> > As there appears to be a way to tell them apart, is it possible (sane?) to
> > make both work? Or at least issue warnings (not mandatory, but defaulting
> > to on unless you have some sort of no warnings) for Nathan's case?
> > [where () round all three would make it do what he meant]
>
> If I have:
>
> (my $foo1, $bar1) = (my $foo2, $bar2) = ("foo", "bar");
>
> then '(my $foo1, $bar1)' is in void context, while '(my $foo2, $bar2)'
> isn't.
>
> Do you really want them to behave differently?
No. But I couldn't think of anything like that, which was why I asked.
> > best way to shoot down my suggestion is an example where existing behaviour
> > can't be determined from void/scalar/list context.
>
> Will the above do?
Yes, thanks.
I would *not* like to teach why the they behaved differently.
Nicholas Clark