I have been given a perl script to quickly extract rows from large excel files.
It's not a well-written Perl script in my opinion. A CSV file is not an "Excel file" just as a text file is not a Notepad file. Pre-counting lines in a large CSV file using a system call to wc -l just to display a silly percentage progress meter is dopey and wasteful. Splitting CSV records using split() is a bad idea in the general case. If the data records are actually in a large Excel workbook to begin with and are being saved to a large CSV file just to run a Perl script on them, then it might be smarter to use DBI with ODBC::DBD and the Microsoft Excel Driver and simply query the Excel workbook directly using an SQL SELECT statement. But if that's the case, then maybe the data should be in a database to begin with.