use strict; use warnings; my @array = ( 1, 2, 3 ); print "@array\n"; # Time passes... if (@array = 10) { # A typo -- should have been "(@array == 10)" print "@array\n"; # Causes an assignment, and a TRUE evaluation! } else { print "The array doesn't have 10 values\n"; } # Prints: # 1 2 3 # 10 @array = ( 1, 2, 3 ); print "@array\n"; # Time passes... if (10 == @array) { # Can't accidentally do "(10 = @array)" print "@array\n"; # without getting a fatal error. } else { print "The array doesn't have 10 values\n"; } # Prints: # 1 2 3 # The array doesn't have 10 values #### Can't modify constant item in scalar assignment at x.pl line 26, near "@array) " Execution of x.pl aborted due to compilation errors.