[Perl] OOP in Perl werkt niet

Pagina: 1
Acties:

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 24-05 12:18

TrailBlazer

Karnemelk FTW

Topicstarter
Ik ben bezig om in Perl een object te maken om een configuratie op een router te laden/ wegschrijven in geheugen/TFTP kortom alles.
Ik heb al een object gedefinieerd alleen het lukt me niet om een parameter in dat object te wijzigen ik krijg dan de melding
code:
1
2
3
router1
router1-confg
Unable to create sub named "" at /opt/OPStools/bin/Perl/CiscoConfig.pm line 16.

Het aanmaken van een object gaat prima alleen het wijzigen van variabelen in dat object wil dus niet. Iemand enig idee wat er mis gaat
het tooltje dat gebruik maakt van het object
code:
1
2
3
4
5
6
7
8
#!/bin/perl
use lib '/opt/OPStools/bin/Perl';
use CiscoConfig();
$router1="router1";
my($router) = new CiscoConfig("$router1");
$router->printDetails();
$router->changeFile("routerbla");
$router->printDetails();

de package definitie
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package CiscoConfig;
# functions to perform various config actions on cisco routers
sub new {
  my $class = shift;
  my $self = {};
  bless $self;
  #all the functions
   if (defined $_[0]) {
     $self->{'configfile'}= "$_[0]-confg";
     $self->{'hostname'} = shift;
   }


  sub changeFile {
     my $self;
    if (defined $_[0]) {
    $self->('configfile') = shift;
    }
  }
  sub printDetails {
    my $self = shift;
    print "$self->{hostname}\n";
    print "$self->{configfile}\n";
 }
  return $self;
  }
1;

[ Voor 20% gewijzigd door TrailBlazer op 09-02-2004 14:50 ]


Verwijderd

$self->('configfile') = shift;
moet dit niet
$self->{'configfile'} = shift;
zijn

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 24-05 12:18

TrailBlazer

Karnemelk FTW

Topicstarter
* TrailBlazer wijzigt font in putty en slaat met hoofd op bureau

ok geen foutmeldingen meer ik krijg alleen de variabele niet gewijzigd

Verwijderd

Wat gebeurd er als je regel 17 in CiscoConfig veranderd in $self->{'configfile'} = $_[0];

*Slaan met hoofd op bureau is niet nodig en zonde van je bureau :)

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 24-05 12:18

TrailBlazer

Karnemelk FTW

Topicstarter
ga ik morgen proberen zit nu lekker thuis