in reply to Fix-it fix-it fix-it!

print "What is the name of the access rights .csv? (Full file name)\n" +; my $file = <>;

That would be better written as:

print "What is the name of the access rights .csv? (Full file name)\n" +; chomp( my $file = <STDIN> );


print "Is there a header in this file?\n"; my $header = <>; if ($header =~ m/^yes|^y]/i){ $header = "1"; } else {$header = "undef"; }

At this point $header will ALWAYS be true.    I think you meant $header = undef; instead of $header = "undef";.



open (CSV, "<", $file);

You should always verify that the file opened correctly before trying to use an invalid filehandle.

open CSV, '<', $file or die "Cannot open '$file' because: $!";

Replies are listed 'Best First'.
Re^2: Fix-it fix-it fix-it!
by Tux (Canon) on Nov 15, 2012 at 07:08 UTC

    All good advice :)

    And of course add to this that one should use Text::CSV_XS or Text::CSV to read/parse CSV. The method in the OP might work now, but is unlikely to work when the CSV gets real.


    Enjoy, Have FUN! H.Merijn