Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Re (tilly) 2: Dynamic array names

by arturo (Vicar)
on Feb 09, 2001 at 23:30 UTC ( #57452=note: print w/replies, xml ) Need Help??

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.)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://57452]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (1)
As of 2021-09-27 23:44 GMT
Find Nodes?
    Voting Booth?

    No recent polls found