Avatar billede spox Nybegynder
13. februar 2004 - 09:32 Der er 6 kommentarer

Include af Perl kode fra andre .pl filer

Jeg vil i forbindelse med et større webprojekt forsøge at opbygge mit site af forskellige "moduler" hvor forskellig kode inkluderes alt efter ønsket indhold. Ligeledes har jeg en fast header og en fast footer der skal inkluderes på samtlige sider.

*** Hvordan inkluderer jeg nemmest og mest pålideligt Perl kode fra andre filer på min forside? ***

Det er meningen at Perl koden i filerne der skal inkluderes skal

Jeg har forsøgt mig med require, men require har store ulemper i form af generering af en ny autogenereret header for hver inkluderet fil, midt i min øvrige kode: "<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
    "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">"

Desuden fejler require ved gentagne refresh af siden, hvor alle sider ikke inkluderes korrekt. Restart af Apache afhjælper problemet.
Avatar billede mfalck Praktikant
13. februar 2004 - 09:53 #1
det nemmeste er at lave et perl modul.
Avatar billede mfalck Praktikant
13. februar 2004 - 09:55 #2
noget i stil med

(hvis filen hedder minpakke.pm)

package minpakke;

#############################################################

use strict;
use Exporter;
use vars qw (@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
$VERSION = 1.0;
@ISA = qw (Exporter);
@EXPORT = qw {minfunktion};

sub minfunktion {
my $return="hej";

return $return
}
Avatar billede mfalck Praktikant
13. februar 2004 - 09:58 #3
i dit program laver du så:

#!/bin/perl

use minpakke;

$resultat = minfunktion();

print "resultat = $resultat\n";

----------

hov - en sidste ting - din pakke SKAL slutte med

1;
Avatar billede spox Nybegynder
13. februar 2004 - 10:50 #4
mfalck -> Jeg har forsøgt mig med dit kode eksempel ovenfor, men får en fejl i min Apache der mener at den ikke kan finde minpakke.pm.
For at afhjælpe problemet har jeg forsøgt at tilføje; use lib "/sti/til/minpakke/";
Men uden held...

Skal min package ligge i et bestemt dir for at kunne afvikles?
Avatar billede mfalck Praktikant
13. februar 2004 - 10:54 #5
enten skal den ligge i samme katalog som dit perlprogram ellers skal du ændre i din INC-path
Avatar billede mfalck Praktikant
13. februar 2004 - 11:01 #6
du kan sætte det via :

use lib '/sti/til/pakke';
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester