in reply to Evaluating Multidimensional Arrays and References
The problem is that the @{...} returns an array. When you compare this with "John", it gets converted into a scalar, which is the size of the array (probably 1 in this case). So you're saying 'if 1 eq "John"'...
The reason that it prints is that its contents are being interpolated into the string (separated by $, but that doesn't matter if you have one element).
What you probably want is to say:
if ($self->{_mydata}[2][3][0] eq "John") { print "My name is $self->{_mydata}[2][3][0]\n"; }
|
---|
In Section
Seekers of Perl Wisdom