hello
sstruthe
Perl is intelligent enogh to let you to say "A scalar and A list = Another List" and just works:
$scalar, @array = split ' ', $_
and you get the key (scalar) and the rest (a list), obviously after you chomped the line of the file.
Note also that
DATA is a special filehandle: is the file containing the source code of your running script, seeked at the point where the special token
__DATA__ is found. So if the data is in a separte file use another name for the filehandle or even better use the modern form:
open my $file_handle_name, '<', $file_name or die "unable to open $file_name for read!" as in the right part of the docs (
perlintro and
peropentut)
As final note, why you use
our (it is not the plural form of
my)?
The oneliner version also can be useful:
perl -MData::Dump -lane "my($scalar,@array)=split; dd $scalar; dd @arr
+ay" exampledata.txt
"A"
("another", "awesome", "awful")
"E"
("example", "estinguished")
L*
UPDATE: if you want directly the HoA created take a look at
@F in special variables:
perl -MData::Dump -lane "$HoA{$F[0]} = [ @F[1..$#F] ]; END{dd %HoA}" e
+xampledata.txt
(
"A",
["another", "awesome", "awful"],
"E",
["example", "estinguished"],
)
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.