[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [offtopic] perl newbie frustrated


um, lemme clarify a bit there--

On 7/13/06, will trillich <suppressed> wrote:
() is a LIST of values, perfect for plopping into an array:

    @a = (qw/one two three/, 22/7, pi())

a list is a series of values. an array is a place-holder for a series of values.

(1..99,'a'..'z',@stuff,qw/plus lots more/) is a list
@vals is an array that can have lots of items, usable as a list


the way you pick out elements of an array is by using the [brackets]:

    print $a[two], $a[pi()].

wow, clear as mud, eh? sheesh!

if you happen to have a "sub two{}" that returned 2, and pi() returned
3.1415 then you'd get array entries 2 and 3 with that statement.
obvsiouly i have hashes on the brain, but i think i wormed my way out
of this one... sorta.


so the perl wonks figured it would be cool to have insta-arrays at
your fingertips by using the brackets without an array name:

    $x = [$val,@array,&function];
    print $x->[1],$x->[-1];

usually this type of thing is more usefully applied to hashes:

  %x = (one=>1, nine=>9, fifty=>50);
  $x = {one=>1, two=>2, structure=>{one_one=>1.1,nine_two=>9.2},more=>'yup'}

and
   $x = { %$x, more=>'stuff here'};
   $x->{another}='some value';
   $x->{structure}{e}=2.71828;

  print $x->{structure}{one_one};

see man perlref or man perlreftut for the full scoop.

--
will trillich
"The great enemy of clear language is insincerity." -- Eric Arthur
Blair (George Orwell)


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.