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]