Schrift
[thread]7913[/thread]

@INC und @ISA = qw(Exporter);

Leser: 1


<< >> 8 Einträge, 1 Seite
Noisebreath
 2006-04-21 17:10
#65194 #65194
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
hi ich versuche mit dem Befehl
my $test = document->new();
$test->spalteninfo(@array);

spalteninfo meines objektes zu füllen.

am anfang des codes habe ich die datei in der die klasse geschrieben ist includiert (#include <C:/Beispieldaten/class.pm>) und use document gemacht.
Die Fehlermeldung lautet :
Can't locate object method "new" via package "document" (perhaps you forgot to load "document"?) at functions.pm line 62.

Hab gelesen dass das was mit dem @INC zu tun haben muss. ich muss da irgendwie die Pfade angeben, komischerweise finde ich im netz grad kein Beispiel wo mir die syntax zu diesem Befehl gezeigt wird. Ausserdem hab ich irgendwas mit @ISA = qw(Exporter); gesehn von dem ich auch keine ahnung hab.
Ich verstehe einfach nicht wie ich das machen kann dass ich in einer datei eine klasse und ihre methoden einbinden kann wenn diese in ner anderen datei stehen

greez noise\n\n

<!--EDIT|Noisebreath|1145625115-->
pq
 2006-04-21 17:14
#65195 #65195
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
tina@lugosi:~$ cat document.pm 
package document;
use strict;
use warnings;

sub new {
   my $class = shift;
   my $self = {};
   bless $self, $class;$self;
}

1;

tina@lugosi:~$ perl -wle'
use document;
my $test = document->new();
print $test'
document=HASH(0x504290)


im übrigen sollte man package-namen (document) großschreiben.
hast du schon perlboot gelesen?\n\n

<!--EDIT|pq|1145625279-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2006-04-21 17:28
#65196 #65196
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Noisebreath,21.04.2006, 15:10][...]

am anfang des codes habe ich die datei in der die klasse geschrieben ist includiert (#include <C:/Beispieldaten/class.pm>) und use document gemacht.
Die Fehlermeldung lautet :
Can't locate object method "new" via package "document" (perhaps you forgot to load "document"?) at functions.pm line 62.[/quote] Was hast Du gemacht?? #include ist kein gültiges Perl (außer dass es ein Kommentar ist). Du musst schauen, dass Deine Klasse gefunden wird. Als erstes musst Du ein use document machen.
Quote

Hab gelesen dass das was mit dem @INC zu tun haben muss. ich muss da irgendwie die Pfade angeben, komischerweise finde ich im netz grad kein Beispiel wo mir die syntax zu diesem Befehl gezeigt wird.
mach
Code: (dl )
use lib qw(/Pfad/zum/Verzeichnis/in/dem/die/.pm/liegt);
vor dem use document.

Außerdem solltest Du die Datei in document.pm (also so wie Dein Package heißt) umbenennen.
Quote
Ausserdem hab ich irgendwas mit @ISA = qw(Exporter); gesehn von dem ich auch keine ahnung hab.
Ich verstehe einfach nicht wie ich das machen kann dass ich in einer datei eine klasse und ihre methoden einbinden kann wenn diese in ner anderen datei stehen

greez noise

@ISA hat nix mit dem Einbinden von Modulen zu tun, sondern mit Vererbung...\n\n

<!--EDIT|renee|1145626512-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Noisebreath
 2006-04-21 17:29
#65197 #65197
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
tina@lugosi:~$ cat document.pm

das sagt mir rein gar nichts...

ne hab ich noch nicht gelesen, aber mein englisch ist auch nicht wirklich so gut..
Noisebreath
 2006-04-21 17:32
#65198 #65198
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
also aus skriptsprachen kenne ich das so dass ich einfach die klasse includiere in dem ich die datei includiere (include <datei>). Dann kann ich in dem skript auch objekte der klasse erstellen und methoden anwenden. So etwas in der Art ist doch auch bestimmt in perl möglich. vielleicht ist das was du ja geschrieben hast schon das richtige, aber es ist nichts mit include etc daher wären ein paar erklärende sätze sehr hilfreich :)

greez noise
Noisebreath
 2006-04-21 17:34
#65199 #65199
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
thx @ renee
Relais
 2006-04-21 17:34
#65200 #65200
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Noisebreath,21.04.2006, 15:29]
Quote
Code: (dl )
tina@lugosi:~$ cat document.pm


das sagt mir rein gar nichts...[/quote]
Das ist Unix-Shell... in WINDOS COMMAND.COM oder CMD.EXE hieße das:
Code: (dl )
C:\> TYPE document.pm 


Es ist eine dieser magischen Beschwörungsformeln, die den Rechner dazu bringt den Inhalt einer Datei auf die Konsole zu drucken.[quote]
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
pq
 2006-04-21 19:53
#65201 #65201
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Noisebreath,21.04.2006, 15:29]ne hab ich noch nicht gelesen, aber mein englisch ist auch nicht wirklich so gut..[/quote]
dann vielleicht perlobj...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 8 Einträge, 1 Seite



View all threads created 2006-04-21 17:10.