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

1091

    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. Ensi kesänä

      Näin kesän viimeisenä minuutteina ajattelen sinua. Olisiko seuraava kesä "meidän" kesä? Tänä vuonna ei onnistuttu, mutta
      Ikävä
      70
      3550
    2. Anne Kukkohovin karmeat velat ovat Suomessa.

      Lähtikö se siksi pois Suomesta ? Et on noin kar? mean suuret velat naisella olemassa
      Kotimaiset julkkisjuorut
      148
      3503
    3. Tukalaa kuumuutta

      Tietäisitpä vaan kuinka kuumana olen käynyt viime päivät. Eikä johdu helteestä, vaan sinusta. Mitäköhän taikoja olet teh
      Ikävä
      46
      3322
    4. Sinä, ihastukseni

      Mitä haluaisit tehdä kanssani ensimmäisenä?
      Ihastuminen
      53
      2769
    5. Tiedät ettei tule toimimaan.

      Mielenterveys ei kummallakaan kestä.
      Ikävä
      32
      2036
    6. Okei, myönnetään,

      Oisit sä saanut ottaa ne housutkin pois, mutta ehkä joskus jossain toisaalla. 😘
      Ikävä
      30
      1962
    7. Et siis vieläkään

      Et ilmeisesti ole vieläkään päässyt loppuun asti mun kirjoituksissa täällä. Kerro ihmeessä sit, kun valmista 😁 tuskin k
      Ikävä
      40
      1695
    8. Onko kaivatullasi

      himmeä kuuppa?
      Ikävä
      48
      1676
    9. Mihin hävisi

      Mihin hävisi asiallinen keskustelu tositapahtumista, vai pitikö jonkin Hannulle kateellisen näyttää typeryytensä
      Iisalmi
      96
      1625
    10. On jo heinäkuun viimeinen päivä.

      En taida nähdä sinua koskaan.
      Rakkaus ja rakastaminen
      39
      1390
    Aihe