Works under XP with Cygwin 1.5.24-2 but not under Linux 2.6.18-4-686 !
This one works under Linux 2.6.18-4-686 with Perl v5.8.8 :
#!/usr/bin/perl
use strict;
use warnings;
sub same_sign {
my $i=0;
printf( "%2d %2d => ", $_[0], $_[1] );
s/-/$i=$i+1;/e for @_;
$i!~/1/;
}
my $val = [ [ 1, 2 ], [ -1, 2 ], [ 1, -2 ], [ -1, -2 ] ];
for ( 0 .. $#{$val} ) {
my ( $x, $y ) = ( $val->[$_][0], $val->[$_][1] );
print same_sign( $x, $y ) ? '' : 'not ', "same sign\n";
}
Output:
1 2 => same sign
-1 2 => not same sign
1 -2 => not same sign
-1 -2 => same sign
PooLpi