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

1148

    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. No nytkö tuli lähtö Orpolle?

      Pieniä oli Marinin aamupalasilakat joulukaloiksi vrt. Orpon 35 miljoonan euron kähmintä johonkin Vapaavuoren urheiluhall
      Maailman menoa
      240
      1938
    2. Mikä teidän jutussa on ongelmana?

      Missä meni pieleen?
      Ikävä
      188
      1607
    3. Kauhavan häiriköijistä

      Juttua Iltalehdessä. Pakko sanoa että noi nuoret on kyllä ihan pimeitä. Putkin peltoja jupksevat kiusaamaan kun ei tietä
      Kauhava
      46
      1240
    4. Haluan sinut, kuuletko minua.

      Haluan sinut. Toivon, että voisimme olla yhdessä. Mietin pystynkö täyttämään toiveesi, olemaan arvoisesi. Voisitko saad
      Ikävä
      50
      952
    5. Hän on tosi

      hyvännäköinen. Ei edes ryppyi oo. :D
      Ikävä
      40
      779
    6. Auto ajoi päälle?

      Ja pakeni luin iltapäivälehdestä. ! Ken on kuski joka tuollee teki
      Kuusankoski
      14
      760
    7. Miksi Lapset kiusaa yöllä

      Miksi Lapset kiusaa yöllä ihmisiä? Miksi vanhemmat antaa tämän tapahtua? Eikö ne huomaa ettei lapset ole kotona vai eivä
      Kauhava
      30
      751
    8. Sama ransetti taas!

      Keikkui tällä kertaa Honkavaaran tien varressa muutaman sadan metrin päässä Louhenkoskelta.. Otin rekisterin ylös ja ver
      Hyrynsalmi
      21
      740
    9. Viimeinen lankafest

      Käykää viimeisessä lanka festissä. Ensivuonna sitä ei enää ole. Rahat on loppu. Harmi .
      Puolanka
      23
      722
    10. Tehdäänkö tänään toiveista totta?

      Poikkea tänä illasta siinä lähellä ja annetaan silmien puhua ja sen jälkeen puhu sinä lopulta mitä ajattelet..
      Ikävä
      46
      637
    Aihe