http://qs321.pair.com?node_id=900375


in reply to Re^2: Values passed into a sub routine
in thread Values passed into a sub routine

Thanks Argel!

I appreciate what you have posted and I see your point. I think using undef makes sense when used also with 'defined', but here's my reasoning behind my original suggestion...

The question was:
"Should I make sure that I always pass 5 expected values to this sub routine even if I have to pass blank values, but preserving the order that the code is expecting them?"

The answer is yes to that question if the person asking is going to continue to use a list array method. I think Undef is only safer than 0 if you use 'defined' to check it, otherwise it's the same as 0, '', '0', right? At least that's what I got out of this perldoc: http://perldoc.perl.org/functions/defined.html

Also, I thought 0 would be alright in this scenario based on what I interpreted the expected values to contain, but then again, it would be a mistake to assume data would be entered in any expected format, especially if it is coming in from a form.

If we don't use a hash this is a better solution:
build_url( $account, $transaction, undef, $fname, $lname);
sub build_url() { ... etc... if (defined($location)) { ... stuff ... } }


Thanks!
Dawn