There's no need for a temporary array when doing:
@reverse = reverse @data;
@data = @reverse;
You can just do:
@data = reverse @data and then
print $data[0];. But to get the last item, you don't need to reverse the list -- just use the
$#data or
-1 index .. these are all the same:
print $data[-1];
print $data[$#data];
print pop @data; # NOTE: THIS SHORTENS THE ARRAY
print scalar splice(@data,-1); # NOTE: SAME AS pop
# or:
@data = reverse @data; # OF COURSE, @data IS NOW MODIFIED
print $data[0];
print shift @data; # NOTE: THIS SHORTENS THE ARRAY
print scalar splice(@data,0,1); # NOTE: SAME AS shift
All of that is assuming you read your whole file into an array in memory, which is obviously costly for memory if the file is large ... A quick search revealed
Read Last Line of A File Only