good chemistry is complicated,and a little bit messy -LW PerlMonks

### Re: Palindrome array

by LanX (Bishop)
 on Dec 29, 2012 at 06:13 UTC ( #1010793=note: print w/replies, xml ) Need Help??

The ugly truth is both don't work!

eq forces scalar context and is meant to compare strings

So in the first code you are checking if the sizes (after stringification) are equal.

```  DB<107> @a = 1..3
=> (1, 2, 3)

DB<108> @a eq "3"
=> 1

in the second you have scalar from reverse on RHS

```  DB<123> (reverse @a)
=> (3, 2, 1)

DB<124> scalar (reverse @a)
=> 321

DB<125> "321" eq (reverse @a)
=> 1

you can try the (less weird) smart match operator ~~ to compare arrays.

```  DB<129> @a=(3,1,3)
=> (3, 1, 3)

DB<130> @a ~~ [reverse @a]
=> 1

DB<131> @a ~~ [3,1,3]
=> 1

DB<132> @a=1..3
=> (1, 2, 3)

DB<133> @a ~~ [reverse @a]
=> ""

a poor man's solution with eq is to explicitly stringify on both sides.

```  DB<143> @a=(3,1,3)
=> (3, 1, 3)

DB<144> @ar=reverse @a
=> (3, 1, 3)

DB<145> "@a"
=> "3 1 3"

DB<146> "@a" eq "@ar"
=> 1

But this depends on the nature of your array elements, don't be too surprised about:

```  DB<151> "@a"
=> "3 1 3"

DB<152> @b=(3,"1 3")
=> (3, "1 3")

DB<153> "@a" eq "@b"
=> 1

Cheers Rolf

Create A New User
Node Status?
node history
Node Type: note [id://1010793]
help
Chatterbox?
 LanX Much enemy much ore [Corion]: marto: Naah, my module doesn't care, but the users of my module might expect some things to work in Chrome that only work in later builds (or, as seems to be the case, don't work there either ;) ) [Corion]: But I really wonder - I can tell Chrome to go offline, but requesting pages over the network still succeeds. But if I manually click the "offline" checkbox, that's different :-/ [LanX]: Corion can you tell WMC to check the sub version number ?

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (10)
As of 2017-12-12 20:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
What programming language do you hate the most?

Results (336 votes). Check out past polls.

Notices?