Re: List assignment question

2006-11-16 Thread Jonathan Rockway
Mark J. Reed wrote:
> I distinctly recall having to do things like (my $a, undef, my $b) to
> avoid errors because you can't assign to undef.  Maybe I'm just
> hallucinating.

Maybe :)

$ perl -Mstrict -e 'my ($a, undef, $b) = 1..3; print "$a $b\n";'
1 3

This works as far back as v5.6.0 (which is the oldest I have around).

-- 
package JAPH;use Catalyst qw/-Debug/;($;=JAPH)->config(name => do {
$,.=reverse qw[Jonathan tsu rehton lre rekca Rockway][$_].[split //,
";$;"]->[$_].q; ;for 1..4;$,=~s;^.;;;$,});$;->setup;


Re: List assignment question

2006-11-16 Thread Jonathan Rockway
Vincent Foley wrote:
> Hello everyone,
> 
> I was toying around with Pugs and I tried the following Perl 5 list
> assignment
> 
>  my ($a, undef, $b) = 1..3;
> 
> Which gave me the following error message:
> 
>  Internal error while running expression:
>  ***
>  Unexpected ","
>  expecting word character, "\\", ":", "*" or parameter name
>  at  line 1, column 14

For reference, this sort of operation works if you write it on two
lines, like:

my ($a, $b);
($a, undef, $b) = 1..3;
say "$a is 1 and $b is 3";

I'll look around in the source and see if I can make this work like
perl5 (unless that's a bad idea for some reason).

Regards,
Jonathan Rockway

-- 
package JAPH;use Catalyst qw/-Debug/;($;=JAPH)->config(name => do {
$,.=reverse qw[Jonathan tsu rehton lre rekca Rockway][$_].[split //,
";$;"]->[$_].q; ;for 1..4;$,=~s;^.;;;$,});$;->setup;


Re: Junctions as arguments (Pugs bug)

2006-12-20 Thread Jonathan Rockway
Ovid wrote:
(reversed the message a bit)
>   is 'b', any('a' .. 'h'), 'junctions should work';

This looks like a Test "bug"; it's doing something like:

   is 'b', 'a' # not ok
   is 'b', 'b' # ok
   is 'b', 'c' # not ok
   ...

If you write:

   ok 'b' === any('a'..'h')

The result is one passing test.


> That outputs something like the following on my system (Version: 6.2.13
> (r14927))
>
>   any(VInt 1,VInt 2,VInt 3,VInt 4)
>   any(VRef )

My question is, what is the expected output of say-ing a junction?
Should "say (1|2|3)" randomly print 1, 2, or 3?  Should "say (1&2&3)"
say 1, then say 2, then say 3?

I can understand it going either way (although I'd lean towards what
Ovid is expecting), but it would be good to hear what others think
before tests are committed.


-- 
package JAPH;use Catalyst qw/-Debug/;($;=JAPH)->config(name => do {
$,.=reverse qw[Jonathan tsu rehton lre rekca Rockway][$_].[split //,
";$;"]->[$_].q; ;for 1..4;$,=~s;^.;;;$,});$;->setup;