Fw: USE Statement

From: Ron Wingfield (rtwingfield_at_archaxis.net)
Date: 12/23/04


To: <dbi-users@perl.org>
Date: Thu, 23 Dec 2004 14:18:59 -0600

Oops, . . .forgot to "reply to all".
----- Original Message -----
From: Ron Wingfield
To: Hardy Merrill
Sent: Thursday, December 23, 2004 2:15 PM
Subject: Re: USE Statement

First, from a "first-time'er", thanks to all who have responded. This is a
GREAT forum!

BTW, I'm running FreeBSD 4.8; MySQL4.1.7 client, scripts and server; Perl
5.8.5 with p5-DBI-1.46 and p5-DBD-mysql-2.9004 MySQL driver.

Here is what I've tried so far:

use strict;
use lib qw(/usr/home/rtwingfield/bin /www/cgi-bin/perl);
use CGI qw(:standard escapeHTML); # I know that this is not the latest,
greatest OOP technique.
use Perl_API_Utils; # installed in /www/cgi-bin/perl

my $db=param('database');
# require $db; # . . . . . . . . . . . . Will not work!
eval "require $db";
# my $dbh = $db::connect(); . . . Will not work! THIS IS MY NEW
PROBLEM!

# require Cookbook; # . . . . . . . . . Works, but "hard-coded.
  my $dbh = Cookbook::connect(); # . . . Works, but "hard-coded.

I searched and found this URL,
http://search.cpan.org/~mschwern/UNIVERSAL-exports-0.03/lib/UNIVERSAL/require.pm.
I have not installed the module, but opted for the EVAL construct which
solves my first problem question.

Now, this problem has raised it's ugly head:

 my $dbh = $db::connect();

How to make this work?

FYI, I've written a Perl/MySQL (soon to be a ???) module that functions as a
universal Table Maintenance program. It has Inquire, Add, Update, and
Delete actions, and is totally non specific for any database or table, . .
.if I can get this one last little problem solved.

Thanks again,
Ron Wingfield
==================================================

----- Original Message -----
From: Hardy Merrill
To: rtwingfield@archaxis.net ; dbi-users@perl.org
Sent: Thursday, December 23, 2004 11:41 AM
Subject: Re: USE Statement

Ron, your message did make it to the list :)

And from 'perldoc -q use':

======================================================
  What's the difference between require and use?
    Perl offers several different ways to include code from one file
into
    another. Here are the deltas between the various inclusion
constructs:

        1) do $file is like eval `cat $file`, except the former
            1.1: searches @INC and updates %INC.
            1.2: bequeaths an *unrelated* lexical scope on the eval'ed
code.

        2) require $file is like do $file, except the former
            2.1: checks for redundant loading, skipping already loaded
files.
            2.2: raises an exception on failure to find, compile, or
execute $fi
le.

        3) require Module is like require "Module.pm", except the
former
            3.1: translates each "::" into your system's directory
separator.
            3.2: primes the parser to disambiguate class Module as an
indirect o
bject.

        4) use Module is like require Module, except the former
            4.1: loads the module at compile time, not run-time.
            4.2: imports symbols and semantics from that package to the
current
one.

    In general, you usually want "use" and a proper Perl module.
======================================================

>>From that it sounds to me like 'require' might be what you want,
instead of 'use'.

HTH.

Hardy Merrill

>>> "Ron Wingfield" <rtwingfield@archaxis.net> 12/23/04 12:40PM >>>
I would like to the specify the USE argument dynamically as for
example:

     USE $database;

Apparently, the scalar is not recognized (compile error). Is it
possible to
provide a dynamic insertion such that a user could specify via a
run-time
parameter, which database the program is to use?

BTW, I'm a new forum user. Can someone please respond is this message
appears on the forum?

Thanks,
Ron W.



Relevant Pages

  • Re: Read 20 lines when pressing n for next
    ... this group is about discussing perl, ... wrapping (after 3 levels of quoting) to be quite off. ... times - the supposed veteran of a forum or news group who thinks they ...
    (comp.lang.perl.misc)
  • Re: pushs in xs
    ... xs is NOT a beginner perl issue. ... RD> This is rather churlish of you Uri. ... RD> alternative forum. ...
    (perl.beginners)
  • Re: Need help with CGI/ DBI error (permissions?)
    ... This forum is for discussing Perl. ... But not *all* CGI scripts written in Perl. ... It is a web server + OS configuration issue. ...
    (comp.lang.perl.misc)
  • Re: NYC - Home to Americas oldest coffee merchant - Kosher certified
    ... Darrin wrote: ... forum, I took it upon myself to do so. ... BTW, when sensitivity ...
    (alt.coffee)
  • Re: Me Bf 109 "Weiss 5" Art
    ... BTW, thank you for using MY research into this aircraft and quoting it ... narrative, as well as the collected photos in direct support, are rare ... I posted those Qs to you on Dr G's behalf from the forum ...
    (rec.aviation.military)