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

Re^2: Using HTML Template to fill a 2-dimensional table

by Athanasius (Chancellor)
on Feb 20, 2013 at 09:47 UTC ( #1019738=note: print w/replies, xml ) Need Help??

in reply to Re: Using HTML Template to fill a 2-dimensional table
in thread Using HTML Template to fill a 2-dimensional table

chomp (my @lines = <DATA>);

Who knows how that works, but it does. It's a perl idiom you need to know.

Yes, it’s a useful idiom — but surely not so mysterious?

  1. my @lines =
    Declares a lexical array variable and initialises it (with a list of array elements).

  2. @lines = <DATA>
    The LHS (left-hand side) of the assignment is an array, which gives list context to the expression on the RHS. When the readline or “diamond” operator <...> is placed in list context, it “reads until end-of-file is reached and returns a list of lines.” Lines are defined as the text between successive input record separators. The input record separator, stored in $/, “is newline by default.” See readline and General Variables in perlvar.

  3. chomp(...);
    When chomp is given a list, it chomps (removes the input record separator from) each element in the list.

That wasn’t really so hard, was it? ;-)

Avoid writing $_ in your code.

Yes, avoid writing $_ explicitly where possible. But be aware that an explicit $_ is often needed; for example:

  • my @doubles = map { $_ * 2 } @numbers;

  • $couples{$_} eq 'Betty' && print for keys %couples;  # Find Betty's husband

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1019738]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (10)
As of 2018-01-22 16:33 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (235 votes). Check out past polls.