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?
my @lines =
Declares a lexical array variable and initialises it (with a list of array elements).
@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.
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, |
In reply to Re^2: Using HTML Template to fill a 2-dimensional table
by Athanasius
in thread Using HTML Template to fill a 2-dimensional table
by jms53
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |