Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^3: Need help with Validation script

by agianni (Hermit)
on Jul 16, 2007 at 19:47 UTC ( [id://626908] : note . print w/replies, xml ) Need Help??

in reply to Re^2: Need help with Validation script
in thread Need help with Validation script

I'm not sure exactly what feed back you are looking for on this code, but I have a couple of comments:

  • Be careful passing around barewords. Use strict and warnings to catch this. In your code, I'm specifically referring to this line:
    validate_fields(EACH, P_DLRUOM);
    Which will error under strictures and who knows what it will do otherwise. Instead, make sure you quote the words:
    validate_fields('EACH', 'P_DLRUOM');
    validate_fields( qw( EACH P_DLRUOM ) );
  • You are checking for the return value of your coderef, but the coderef you call doesn't actually explicitly return anything. In its current state, it will always return true, or rather, it will return the result of the print statement, as it is the last thing that happens in the subroutine
  • This doesn't make a big difference, but be careful about how you pass arguments. validate_p_dlruom only looks at the first argument, but you pass two. Generally, I like to do this:
    foo( { arg1 => 'val1', arg2 => 'val2' } ); sub foo{ my $arg_ref = shift; # do some stuff with $arg_ref->{arg1} and # $arg_ref->{arg_2} ... return; }
    Then you have a better idea of what you are passing around and you don't have to rely on the order in which they are passed.
perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'

Replies are listed 'Best First'.
Re^4: Need help with Validation script
by ssmith001 (Initiate) on Jul 16, 2007 at 20:13 UTC
    I guess what I was looking for was some help with a simple routine to check a single column P_DLRUOM to see if it's value is one of ("EACH","FEET","FT","IN","UNIT"). If the user inputted value for P_DLRUOM = "EACH", it's valid and then I want to run off an build the SQL statement to do the update. I can take care of that part later. Since there will be numerous column to check eventually, it sounds like to the best way would be to use as hash as suggested above.