Re: want to assign default value to variable I assign from split but want to know optimal way to get this done: please help!



Rob Dixon wrote:
Richard Lee wrote:
while (<FILE>) {
my($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27)
= (split( /\|/, $_))[3,4,6,7,12,40,41,42,43,46,56,64]
}

while doing above, what is the easiest way to make sure all the variable that's being given a value is true and if not
assign something default value (such as 'default' or 'X') ?

I was doing (after the while loop)

$file |= 'default'
$file2 |= 'default2'
$file3 |= 'default3'

but I stopped and thought this cannot be so repetitious

so I didn't want to but tried( I didn't want to put them in array since I need to use individual named variable later)

while (<FILE>) {
my @array = (split( /\|/, $_))[3,4,6,7,12,40,41,42,43,46,56,64]
}
for (@array) {
$_ |= 'default';
}

but is that the best way to do this?

while (<FILE>) {
my ($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27) =
map $_||'default', (split /\|/)[3,4,6,7,12,40,41,42,43,46,56,64];
}

Rob

Thank you everyone.

I like this solution the best and thanks for pointing out that I was misusing |= vs ||=

thank you all!!
.