The string comparison operator eq puts its operands into scalar context:
#! perl use warnings; use strict; use 5.010; say 'equal' if context('1') eq context('2'); sub context { my $c = (defined wantarray) ? (wantarray ? 'list' : 'scalar') : 'void'; say '(', shift, '): is in ', $c, ' context'; return 42; }
Output:
15:56 >perl 457_SoPW.pl (1): is in scalar context (2): is in scalar context equal 15:56 >
So, neither code snippet is doing what you want. The first compares the sizes of the two arrays. The second compares the size of @array with the value returned by reverse, which
In scalar context, concatenates the elements of LIST and returns a string value with all characters in the opposite order.
To compare the contents of the two arrays, use the smart match operator ~~. See How do I test whether two arrays or hashes are equal?
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: Palindrome array
by Athanasius
in thread Palindrome array
by rnaeye
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |