in reply to Loading an anonymous hash

As a one-time PL/1 programmer (we got our record layouts from you COBOL guys), I'd eschew the record structure you want to use. ikegami gave you a great solution; I'd suggest tweaking
my %Employee_Rec; @Employee_Rec{qw( Emp_No Emp_Lname Emp_Fname Emp_SSN Emp_DOB Emp_aka )} = $csv->fields(); print "$Employee_Rec{Emp_No} \n"; print "$Employee_Rec{Emp_Lname} \n"; print "$Employee_Rec{Emp_Fname} \n"; print "$Employee_Rec{Emp_SSN} \n"; print "$Employee_Rec{Emp_DOB} \n"; print "$Employee_Rec{Emp_aka} \n";

to

my ( $Emp_No, $Emp_Lname, $Emp_Fname, $Emp_SSN, $Emp_DOB, $Emp_aka +) = $csv->fields(); print "$Emp_No \n"; print "$Emp_Lname \n"; print "$Emp_Fname \n"; print "$Emp_SSN \n"; print "$Emp_DOB \n"; print "$Emp_aka \n";

You gain nothing from storing the information in a hash (unless you were going to make a Hash of Hashes, keyed on the Employee Number). Prefacing the fields with Emp_ indicates the fields are related.