[perl] *.sql in Perl-skript einbinden


RedDevilGT

Grünschnabel
Hallo *,

ich bin auf der Suche nach einer einfachen Methode eine SQL-Datei in ein Perl-skript einzubinden. Die Datei hat eigentlich eine sehr einfache Struktur

Code:
#SQL Datei
$sql1=<<EOF
Select1
EOF

$sql2=<<EOF
Select2
EOF
...
Diese möchte ich ähnlich wie bei PHP einbinden, und zu einem späteren Zeitpunkt die Vars aus der SQL Datei aufrufen und einbinden.

Gibt es dazu eine einfache möglichkeit ohne das ich gleich eine ganze *.pm anlegen muss. Bin noch ein dau was Perl angeht :(

Danke für eure Hilfe.

Gruß
Jan

€dit1:
Hab mit Hilfe eines Arbeitskollegen dann doch eine einfach lösung gefunden:
Code:
#Perl-Script
use Config::IniFiles;
my $cfg = Config::IniFiles->new (-file => 'file.ini');
...
my $sql = $cfg->val('section', 'sql');
..
Code:
#file.ini
[section]
sql= select * from table
 
Zuletzt bearbeitet:

renee

Erfahrenes Mitglied
Dafür finde ich .ini-Dateien etwas übertrieben.

Wenn Du immer eine Leerzeile zwischen zwei Statements machen würdest (damit man komplexere Statements auch über mehrere Zeilen schreiben kann) - also so:

Code:
SELECT * FROM tabelle;

SELECT col1, col2 
  FROM tabelle
  WHERE col1 = 'test'
      AND col2 > 3
  ORDER BY col2
  LIMIT 10

INSERT INTO tabelle VALUES (1,1);
Dann könntest Du es so machen:

Code:
#!/usr/bin/perl

use strict; # sollte in jedem Programm Pflicht sein
use warnings; # dito

my @sqls;
{ 
  # extra Block, weil ich hier eine Spezialvariable verändere und 
  # ich keine Auswirkungen im späteren Programmablauf haben möchte

  # setze den "Blocktrenner" auf \n\n (siehe perldoc perlvar)
  # damit trenne ich die Datei immer an Leerzeilen
  local $/ = "\n\n";

  # lese die Datei ein. In $! steht die Fehlermeldung wenn das Öffnen
  # der Datei nicht klappen sollte
  open my $fh, '<', 'datei.sql' or die $!;
  @sqls = <$fh>;
  close $fh;
}

# Testausgabe
print "Statement: $_" for @sqls;
 

Neue Beiträge