From: Richard Lee <[EMAIL PROTECTED]>
> 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?
So are the defaults the same or not?
If they are you can do something like
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];
for($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27)
{
$_ |= 'default';
}
}
Actually this seems to work as well:
while (<FILE>) {
$_ |= 'default' for
(my($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27)
= (split( /\|/, $_))[3,4,6,7,12,40,41,42,43,46,56,64]);
# and some code using $file1, ...
}
If you want a different default for each field, you can't IMHO do
better than the original code.
Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/