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]

Reply via email to