why's the our in $name? you don't even use $name anywhere else. Here are some examples of "good" code using some of your ideas (still don't know what you are trying to accomplish).
__CODE__ #!/usr/bin/perl -wT use strict; use Data::Dumper; use CGI qw( :standard ); print header ( "text/html" ); our $name; my $hash_ref = do ( 'fried.dat' ) || die "error: unable to open fried.txt\n"; print Dumper $hash_ref; print <<"EndOfHTML"; name = $name hash_ref name = $$hash_ref{name} EndOfHTML __END__ fried.dat contains: $name = "chicken"; { name => 'fried' } > -----Original Message----- > From: Kyle Babich [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, July 03, 2002 11:07 AM > To: [EMAIL PROTECTED] > Subject: Re: 2 Questions > > > Still getting the same problem, name requires explicit package name. > > #!/usr/bin/perl -wT > use strict; > use Data::Dumper; > use CGI qw( :standard ); > > print header ( "text/html" ); > > my $hash_ref = do ( 'fried.dat' ) || die "error: unable to open > fried.txt\n"; > print Dumper $hash_ref; > > print <<"EndOfHTML"; > > our($name); chicken > > EndOfHTML > > > > > fried.dat: > > { > name => 'fried' > } > > > ----- Original Message ----- > From: "Nikola Janceski" <[EMAIL PROTECTED]> > To: "'Kyle Babich'" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Cc: "beginners-cgi" <[EMAIL PROTECTED]> > Sent: Wednesday, July 03, 2002 9:25 AM > Subject: RE: 2 Questions > > > > scoping!!! my only scopes the end of the file! > > > > so my in fried.dat is scoped only in fried.dat. > > > > use our($name); > > > > > -----Original Message----- > > > From: Kyle Babich [mailto:[EMAIL PROTECTED]] > > > Sent: Wednesday, July 03, 2002 9:19 AM > > > To: [EMAIL PROTECTED] > > > Cc: beginners-cgi > > > Subject: Re: 2 Questions > > > > > > > > > I'm still getting the $name requires explicit package name. > > > > > > Here is what I have in index.pl > > > > > > #!/usr/bin/perl -wT > > > use strict; > > > use Data::Dumper; > > > use CGI qw( :standard ); > > > > > > print header ( "text/html" ); > > > > > > my $hash_ref = do ( 'fried.dat' ) || die "error: unable to open > > > fried.txt\n"; > > > print Dumper $hash_ref; > > > > > > print <<"EndOfHTML"; > > > > > > $name chicken > > > > > > EndOfHTML > > > > > > > > > And here is what I have in fried.dat > > > > > > { > > > name => 'fried' > > > } > > > > > > > > > I have both chmod'd to 755. What is wrong with it? > > > > > > On Tue, 2 Jul 2002 17:16:00 -0700 (PDT), "Ovid" > <[EMAIL PROTECTED]> said: > > > > --- Kyle Babich <[EMAIL PROTECTED]> wrote: > > > > > How can I import scalars, arrays, etc. from external > perl and text > > > > > files? > > > > > > > > > > This is what I have in index.pl: > > > > > > > > > > #!/usr/local/bin/perl -wT > > > > > use strict; > > > > > use CGI qw/ :standard /; > > > > > > > > > > print header ( 'text/html' ); > > > > > > > > > > open(TEXT,"<fried.txt") or die ("error: fried.txt failed\n"); > > > > > while(<TEXT>) { > > > > > print; > > > > > } > > > > > close(TEXT) or die("error: fried.txt failed\n"); > > > > > > > > > > print "$name chicken"; > > > > > > > > > > And this is what I have in fried.txt: > > > > > > > > > > my $name = "chicken"; > > > > > > > > > > So why doesn't it work? > > > > > > > > --- Kyle Babich <[EMAIL PROTECTED]> wrote: > > > > > How can I import scalars, arrays, etc. from external > perl and text > > > > > files? > > > > > > > > > > This is what I have in index.pl: > > > > > > > > > > #!/usr/local/bin/perl -wT > > > > > use strict; > > > > > use CGI qw/ :standard /; > > > > > > > > > > print header ( 'text/html' ); > > > > > > > > > > open(TEXT,"<fried.txt") or die ("error: fried.txt failed\n"); > > > > > while(<TEXT>) { > > > > > print; > > > > > } > > > > > close(TEXT) or die("error: fried.txt failed\n"); > > > > > > > > > > print "$name chicken"; > > > > > > > > > > And this is what I have in fried.txt: > > > > > > > > > > my $name = "chicken"; > > > > > > > > > > So why doesn't it work? > > > > > > > > When declaring variables with 'my', you wind up lexically > > > scoping them. > > > > This is "file" scoped, > > > > however, so a lexically scoped variable in another file is not > > > > accessible to you. > > > > > > > > One easy (and kind of simplistic) way of getting around > > > this is to have > > > > your variables in the > > > > second file in a hash ref. Add the following to a file named > > > > "test.dat": > > > > > > > > { > > > > one => 'uno', > > > > two => 'dos' > > > > } > > > > > > > > Then, in the same directory, create and run the > following program: > > > > > > > > #!/usr/bin/perl -w > > > > use strict; > > > > use Data::Dumper; > > > > > > > > my $hash_ref = do ( 'test.dat' ) or die "Cannot open > > > test.dat: $!"; > > > > print Dumper $hash_ref; > > > > > > > > The above form of 'do' is a special form that "evals" the > > > contents of > > > > the file. The last thing > > > > returned from the eval is the last results of the last > expression > > > > evaluated, in this case, a hash > > > > reference. Be careful with this technique, though. If > someone else > > > > can alter the contents of > > > > 'test.dat', you could be eval'ing unsafe code. > > > > > > > > Cheers, > > > > Curtis "Ovid" Poe > > > > > > > > ===== > > > > "Ovid" on http://www.perlmonks.org/ > > > > Someone asked me how to count to 10 in Perl: > > > > push@A,$_ for reverse > > > q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; > > > > shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print > > > $_,$/for reverse @A > > > > > > > > __________________________________________________ > > > > Do You Yahoo!? > > > > Sign up for SBC Yahoo! Dial - First Month Free > > > > http://sbc.yahoo.com > > > > > > > > > > > > > > > > > > > > > > -- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -------------------------------------------------------------- > ------------ > -- > > -------------------- > > The views and opinions expressed in this email message are > the sender's > > own, and do not necessarily represent the views and > opinions of Summit > > Systems Inc. > > > > > > > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > ---------------------------------------------------------------------------- -------------------- The views and opinions expressed in this email message are the sender's own, and do not necessarily represent the views and opinions of Summit Systems Inc. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]