in reply to Using Split to load a hash
Provided the name doesn't contain commas, then it won't matter if the address does, provided you use 3rd parameter to split. This is a number that specifies how many fields to split the input into. By setting this to 2, everything before the first comma will be treated as the first field--the name. And everything after that first comma, including more commas, will become the second field:
#! perl -slw use strict; use Data::Dumper; ##.............................V third parameter my %hash = map{ split ',', $_, 2 } <DATA>; print Dumper \%hash; __DATA__ a name, an address, with commas, another name, and another address, also with commas and a third name, and address fourth name, fourth address
Produces:
C:\test>junk4 $VAR1 = { 'and a third name' => ' and address ', 'a name' => ' an address, with commas, ', 'fourth name' => ' fourth address ', 'another name' => ' and another address, also with commas ' };
Note that the addresses are unchomped.
|
|---|