aliohjelma kutsuminen muuttujalla

lisää perliä

miten saan kutsuttua aliohjelmaa muuttujan avulla :

$muuttuja = "auto";
$vastaus = &sub::$muuttuja('lada');

ei toimi, mutta :

$vastaus = &sub::auto('lada');

toimii kuten pitääkin.

3

1032

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • perliä

      Tuliko vihdoinkin niin vaikea, ettei löytynyt vastatusta :)

      • Luova evalin käyttö tuntui ainakin toimivan:

        #!/usr/bin/perl -w

        sub auto {
        print "auto:@_\n";
        return 1;
        }

        sub auto2 {
        print "auto2:@_\n";
        return 2;
        }

        my $muuttuja = "auto";
        my $vastaus = eval qq/$muuttuja("lada");/;
        print "vastaus=$vastaus\n";
        $muuttuja = "auto2";
        $vastaus = eval qq/$muuttuja("lada");/;
        print "vastaus 2=$vastaus\n";


    • *BSD

      Tohon on kaksi tapaa:

      1. Kutsut funktiota "synbolisen linkin kautta"

      {
      ' no strict 'refs';
      ' my $muuttuja = 'foo';
      ' &{ $muuttuja }();
      }

      Kun aina käytät 'use strict' niin tarvitsee ton blokin aikana käskyttää, ettei välitä noista (no strict ..).

      2. Pistät sen funktion "viittauksen" muuttujaan:

      my $ref = \&foo;
      &{ $ref }();

      Kohta 2. on suositeltu.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Täytyi haukkuu sut lyttyyn

      En haluu tuntee rakkautta sua kohtaan enää ja haluun unohtaa sut mut sit tulee kuiteki paha olo kun haluis vaan oikeesti
      Ikävä
      62
      1735
    2. SINÄ nainen hyvin läheltä

      Pidän sinusta. Mutta mene ensin juttelemaan lääkärin luokse, ja hoida itsesi kuntoon. Sit kun sä olet kunnossa, niin mä
      Ikävä
      68
      1064
    3. 45
      1035
    4. Et voi olla loputtomasti hiljaa

      Nainen. Tarkoitan siis meidän juttua. Eihän tämä tällaiseen epätietoisuuteen voi jäädä siinä vaan särkyy kumpikin. Kerto
      Ikävä
      63
      980
    5. Ajatus aamuun

      Tämä jollekin tärkeälle. On asioita mistä jutellaan, on asioita mistä vitsaillaan, on myös asioita mistä ei puhuta kenen
      Ikävä
      71
      939
    6. Nainen mitä tekisit

      Joutuisit tekemään miehelle ja sinulle tai sinulle ja miehellesi ja kahdelle lapselle ruokaa ja kaapista löytyy 2 litraa
      Sinkut
      158
      909
    7. Siis ei ole edes mahdollista

      että ei törmätä, ei sit millään vaikka päällä hyppisi
      Ikävä
      44
      860
    8. Martina kauniina lehtihaastattelussa

      Martina antoi hyväntuulisen haastattelun lehteen. Tyylikkäitä kuvia ja kivoja vaatteita kauniilla Martinalla.
      Kotimaiset julkkisjuorut
      182
      815
    9. J-miehelle

      haluan kertoa että olet edelleen mulle rakas. Ajattelen sinua päivittäin kulta.
      Ikävä
      58
      798
    10. Minä en luota sinuun yhtään nainen

      ja aistin että yrität taas satuttaa henkisesti koska tiedät että olet heikkouteni joten siksi tein mitä tein mutta en ki
      Ikävä
      34
      762
    Aihe