EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Perl require config (https://www.eqemulator.org/forums/showthread.php?t=35043)

provocating 03-11-2012 04:27 PM

Perl require config
 
I am doing some Perl scripts that are requiring me to have MySQL access, obviously I do not want my login and password information in these scripts. I would rather have them outside of the script. Is there something in the emulator that would interfere with this ? Using a perl require seems to work fine outside of the emulator, I can print out variable results at the command line. Within the emulator the variables do not seem to import properly.

Something simple like

config.pl
Code:

use DBI;
$db_database='peq';

and script.pl

Code:

#!/usr/bin/perl

require 'config.pl';

sub EVENT_SAY
{
  if($text=~/Hail/i) {
    quest::shout('db name ' . $db_database);
  }
}

I would think that would work, now if I do a print after the require line, like print $db_database, it works all day long.

c0ncrete 03-13-2012 04:41 PM

something like this will work from the plugins directory:

Code:

use XML::Simple;
use DBI;
use DBD::mysql;

sub RunQuery {

        my $query = shift;
       
        # Read database config info from xml file.
        # NOTE: First line MUST read: <?xml version="1.0" ?>
        my $xml = new XML::Simple;
        my $dat = $xml->XMLin("../eqemu_config.xml");
        my $dbHost = $dat->{database}{host};
        my $dbPort = $dat->{database}{port};
        my $dbUser = $dat->{database}{username};
        my $dbPass = $dat->{database}{password};
        my $dbData = $dat->{database}{db};

        # Connect to the database.
        my $dsn = "dbi:mysql:$dbData:$dbHost";
        my $dbh = DBI->connect($dsn, $dbUser, $dbPass);

        # Run query and return result set.
        my $sth = $dbh->prepare($query);
        $sth->execute;
        return $sth->fetchrow_array();

}

1;



All times are GMT -4. The time now is 08:58 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.