Actually, "slurp" mode is used for reading the contents of a file into a scalar. You're using an array. If you assign a filehandle to an array, Perl just "understands" and reads the entire file into the array. This code works fine:
open(FILE1, $ARGV[0]) || die "Error: $!\n";
@lines = <FILE1>;