in reply to Re (tilly) 2: Dynamic array names
in thread Dynamic array names

You're right. I could have been more explicit in the original code, but I just wanted to give the gist, and so left large (and potentially important) hunks out. Of course I'd use my @array when I got it from "Thing" (which I'll assume is a line from a file which we're splitting to get an array) , à la :

my @list_of_arrays; while (<FILE>) { my @array = split "\t", $_; push @list_of_arrays, \@array; }

Because that gives you a (reference to a) fresh @array each time through the loop, instead of adding yet another reference to the same global array.

As tilly has pointed out, only giving *parts* of the answer may not be helpful ... So, as they said in that long-ago decade, let's be careful out there =)

Peevish answer to the interview question: "What, don't you people use strict around here? =)"

Philosophy can be made out of anything. Or less -- Jerry A. Fodor

Replies are listed 'Best First'.
Re: Re: Re (tilly) 2: Dynamic array names
by Fastolfe (Vicar) on Feb 10, 2001 at 02:12 UTC
    I would give even more bonus points if the candidate was able to work without the temporary @array variable at all:
    my @list_of_arrays; while (<FILE>) { push @list_of_arrays, [ split /\t/ ]; }
      I would subtract considerable points for missing the fact that you were breaking the spec of what was asked for in at least 3 different ways! OTOH anyone who came up with this would impress me:
      my @data = map [/[^,\n]*/g], <CSV>;
      Now for shame, find at least 3 ways in which you broke the spec. (Having the wrong array name and the wrong filehandle don't count. I am looking for egregious data errors.)
        Had I been responding to you and not arturo (heh), I would have chomped the input data first, used a comma instead of a tab and a negative LIMIT argument to split to preserve trailing null fields. Did I miss anything else?

        I might also have used /[^,\n]+/ in that map instead of a *, which introduces spurious empty fields by succeeding emptily upon encountering a delimiter.

Re (tilly) 4: Dynamic array names
by tilly (Archbishop) on Feb 09, 2001 at 23:48 UTC
    I would give bonus marks for that peevish answer (but only if you can explain why the fix mattered). :-)

    The point of this question is to see how the person debugs a simple problem. It is our responsibility to make sure that people who join learn the basic techniques we rely on to avoid them in the first place. (Including strict.)