in reply to Re^3: csv to hash table
in thread csv to hash table

Why => in split /$field_separator/ => $record? To my eye that says paired item, but there it's just a plain ol' comma and would be clearer as:

my @fields = split /$field_separator/, $record;

Personally I prefer making the record variable explicit, but I'd write the while expression as:

while (defined (my $record = <$filehandle>)) {

which is a closer match to the magic you get with while (<$filehandle>) {.

True laziness is hard work

Replies are listed 'Best First'.
Re^5: csv to hash table
by kcott (Archbishop) on Nov 20, 2013 at 06:18 UTC
    "Why => in split /$field_separator/ => $record?"

    Beyond being a preferred style, it has no particular significance.

    "To my eye that says paired item, but there it's just a plain ol' comma and would be clearer as: ..."

    I really can't believe you're having any difficulty with the clarity of that code; however, if you are, think of it in terms of this pairing:

    how to split => what to split

    With regards to the while condition, my intention was to point out the confusion between the filehandle and the record. I thought I'd made that fairly clear with my opening sentence. I didn't consider a more in-depth discussion of how <$filehandle> works to be useful or helpful in this context.

    [To waytoperl: If you're wondering about this use of defined, it's explained in more detail in perlop: I/O Operators.]

    -- Ken