in reply to truncate a file from top

You no need to tie the file to an array, or load the file to an array to limit a file to N lines or bytes. You do however have to read in the file one way or another (unless you modify the filesystem directly), although not all at once. Maybe the simplest way is to call tail:
tail -n N file > file.$$; mv file.$$ file # Keep last N lines tail -c N file > file.$$; mv file.$$ file # Keep last N bytes