[Perl] Symbolic reference probleempje

Pagina: 1
Acties:

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Kan iemand mij helpen met het volgende perl probleem.
Het probleem is gesimplificeerd terug te brengen tot het volgende:

Ik heb variabele (uit hash of array) en de inhoud daarvan wil ik als object reference gebruiken.

code:
1
2
3
4
5
6
7
8
9
use strict;
no strict 'subs';
no strict 'refs';

my $obj = "Object";

no strict refs;
use $obj;
&$obj::subroutine();


Perl vindt dat dit geen goede code, en ik kan geen manier verzinnen om het wel te laten werken. De Perl manual pages helpen me ook niet echt verder, kan iemand me vertellen hoe het wel kan?

  • BOOTZ
  • Registratie: Maart 2001
  • Laatst online: 17-03 09:38
moet het niet $obj->subroutine(); zijn? ik kan er naast zitten, maar volgens mij is het dit

Maak je eigen poll


  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Nou, $obj is geen object referentie maar echt een string, de naam van een package.
Het gaat al gelijk fout bij de use $obj; opdracht.

En een -> ipv :: maakt in mijn geval helemaal niets uit. Kan beide, maar werkt allebei niet.

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Nou, iemand nog een idee?

  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-07 17:52
Doe is inplaats van 'use $obj'
code:
1
eval "use $obj;";

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Michael: nope dat werkt niet..

  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-07 17:52
code:
1
2
3
4
5
6
use strict;
my $obj = "test";
eval <<END_EVAL;
   use $obj;
   ${obj}::subroutine();
END_EVAL


Dit werk wel, sorry van die andere, had het niet getest :)

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 09:45
Gebruik eens 'require $obj' ipv 'use $obj'...
Pagina: 1