Beam_Hystersis( $workbook, $filename, $optsRef ); ... sub Beam_Hystersis { my( $workbook, $filename , $optsRef ) = @_; use autodie; ## stick this next to use strict so you dont have to keep repeating open my($fh), '<', $filename; ...; $worksheet->write( ... ); ...; }