in reply to How to set hash values to '-' .
G'day Sami_R,
"... set hash values to '-', is there any simplest way of implementing this, please."
You can assign to multiple keys at the same time using a hash slice (see "perldata: Slices"). You can assign multiple, identical values using the repetition operator (see "perlop: Multiplicative Operators").
As already pointed out, information from you is missing. The following code should give you an idea of a technique you might employ; of course, it's impossible to even suggest implementation details.
$ perl -e ' my @hashes; my @days = ([1,2,3], [], [], [4,5,6]); for (0 .. $#days) { my %x = (day => 1+$_); @x{qw{bal pay tot}} = @{$days[$_]} ? @{$days[$_]} : ("-") x 3; push @hashes, \%x; } use Data::Dump; dd \@hashes; ' [ { bal => 1, day => 1, pay => 2, tot => 3 }, { bal => "-", day => 2, pay => "-", tot => "-" }, { bal => "-", day => 3, pay => "-", tot => "-" }, { bal => 4, day => 4, pay => 5, tot => 6 }, ]
— Ken
|
|---|