#!/usr/bin/perl use strict; use warnings; use Text::CSV_XS qw( csv ); my $file = "/home/me/Documents/www/files/data/Miscellany/Magic_items.txt"; open my $fh, "<", $file or die "Can't open $file $!"; my $list = csv ( in => $file, sep_char => '|', headers => [ "item", 'seen in" ], key => "item", # SCALAR, not LIST ); use Data::Dumper; print Dumper $list;