> On Jan 8, 2004, at 7:45 AM, Dan Muey wrote:
> [..]
> >
> > Except I need to do this to about ten variabels all in a row. Which 
> > gives me 10 lines with Bob's way and 40 with my very first example. 
> > Boo for that! :)
> >
> [..]
> 
> Have you thought about a simplification process?
> One of the tricks I do is say
> 
>       my ($var1,$var2,$var3,$var4) = ('' , '' , '', '');
> 
> This way I have declared them and initialized them,
> so that they will not bounce with that 'use of undefined
> var at line X" error.
> 
> This way when you get down to
> 
>       my $guts = ($use_second_choice)? $var2:$var1;
> 
> you don't need to worry about the additional bit of
> making sure that it is
> 
>       my $guts = ($use_second_choice)? $var2: $var1 || '';
> 

Wouldn't the || '' apply to $guts and not the use of uninitialized $var1,$var2,etc... 
Anyway?

> Just a thought to think...

The vars to be assigned ($var1, $var2,etc...) come from a 
database query so they are handled already earlier. So how 
they are declared are irrelevant to the issue. (Yes they must be 
initialized for a warnings safe environment and they are, just 
assume that they are so the issue is not clouded by where they come from.)

The other thing  the tricky part is:
I only want to assign it $var2 if($use_second_choice && !$var1)
I think the way you're doing it will asign it $value2 if $use_second_choice 
regardless of if $var1 has a value or not.

So :
No matter what if $var1 has a value then assign $guts that value.
If $var 1 is empty and $use_second_value then assign it $var2
Other wise it shoufl be empty.

Bill's method work perfectly, namely:
$var1,$var2 and $ues_2 are declared and set earlier via a 
DB query. So don't worry about where they are coming from.

my $value = $var1 || ($use_2 && $var2) || '';

So $value gets set to $var1 no matter what if($var1).
If it's not then it goes to the next step and is asking :"Ok $var1 has no 
value do you want to use $var2 ?" if Yes give it $var2 if not say "sorry 
I can't help you" and on the the next || which says "ok you shall receive 
from the variable gods '' nothing!"

OR in longer terms:

my $guts = ''; # so that at least it has something assigned even if it's nothgin. :)
if($var1) { $guts = $var1; }
elsif($use_var2_if_var1_is_empty) { $guts = $var2; }

See what I'm trying to get at?

Bob's example does this quite perfectly, thanks again Bob!\

Dmuey

> 
> ciao
> drieux

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to