David, this appears to be exactly what i was looking for, and i thank you with infinite groveling *g*. the reason i wanted something like this is because i like to name my variables and cgi parameters the same as my database fields - $school_id = school_id (cgi parameter) = school_id (mysql field). i plan on using this to allow the passing of the name w/o the "$" to a sub and having it construct all necessary destinations dynamically since all names will be as identical as possible.
if you know of a better way to accomplish the end result, i'm all for it. this is just the best i could come up with for now. hopefully my description makes sense. thanks to all for their help. joe On Mon, 2003-01-13 at 13:58, david wrote: > Joe Mecklin wrote: > > > Dan, > > > > here is the output with your additions. > > > > BEFORE :: ID - 101 > > NM - Arapaho Elementary > > AD - 1300 Cypress Dr. > > > > # this is the call to clear_input in ISD.pm > > $fields = school_id, school_name, school_address > > @field = school_id school_name school_address > > $f = school_id = .. > > $f = school_name = .. > > $f = school_address = .. > > > > AFTER :: ID - 101 > > NM - Arapaho Elementary > > AD - 1300 Cypress Dr. > > > > # this is the output to clear_input2 in school_data (all code in > > the same file) > > $fields = school_id, school_name, school_address > > @field = school_id school_name school_address > > $f = school_id = .101. > > $f = school_name = .Arapaho Elementary. > > $f = school_address = .1300 Cypress Dr.. > > > > both routines are carbon copies of each other. i used "our" simply to > > see if it might affect how the data got passed to ISD. no effect. but > > while writing this, i changed them back to "my" and the clear_input2 > > call no longer displayed the values. God keep me from being bored with > > simplicity *g*. > > > > also, while the ultimate goal is to null the variables, currently all > > i'm doing is printing out the values of the variables being referred to > > in the arguments being passed to clear_input() and clear_input2(), on > > the premise if i can't read the existing data in those variables, i > > won't be able to write new data to those variables. > > i didn't follow the thread closely but what you are missing could be the > name of the package where the variables are declared. without it, Perl > search the variable in the current package (and it's Export list for one) > and if it can't find it, it wouldn't be able to use it. also remember that > once you tag your variables with 'my' ('our' is ok of course), they won't > exist in the symbol table and thus you can't effectively symbolic > de-reference them. to give you an idea, take a look at the following > script: > > #!/usr/bin/perl -w > use strict; > > package Apple; > sub apple{ > > #-- > #-- without caller(), the following won't > #-- work because Perl doesn't know which symbol > #-- table to search for $j > #-- > my $i = caller() . '::' . shift; > > no strict 'refs'; > print "$$i\n"; > > #-- > #-- change it > #-- > $$i = 5678; > } > > package main; > > #-- > #-- if you tag $j with 'my', you are telling > #-- Perl that you don't want $j to be in the symbol > #-- table of main which you can't effectively symbolic > #-- de-reference it in your Apple package > #-- > our $j = 1234; > > Apple::apple('j'); > > #-- > #-- reflect new value > #-- > print "$j\n"; > > __END__ > > prints: > > 1234 > 5678 > > i don't know why you want symbolic reference but many people (including me) > will tell you that this's very dangerous and you should avoid that as much > as possible. > > david > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]