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

1120

    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. Olen väsynyt tähän

      En osaa lopettaa ja koen huonoa omaatuntoa tästä. Kaikki on muutenkin turhaa ja tekemisesi sattuvat. Tunteita on vain hy
      Ikävä
      46
      5720
    2. Duunarit hylkäsivät vasemmistoliiton, siitä tuli feministinaisten puolue

      Pääluottamusmies Jari Myllykoski liittyi vasemmistoliittoon, koska se oli duunarien puolue. Sitä samaa puoluetta ei enää
      Maailman menoa
      240
      5511
    3. Oppiiko vasemmistolaiset valehtelun jo kotonaan?

      Sillä vasemmistolaiset/äärivasemmistolaiset valehtelee ja keksii asioita omasta päästään todella paljon. Esim. joku vas
      Maailman menoa
      235
      2983
    4. Muistakaa persut, että TE petitte, ei kokoomus

      Miksikö kukaan ei arvostele kokoomusta? No sen vuoksi, että kokoomus noudattaa vaalilupauksiaan. Sen sijaan TE persut,
      Maailman menoa
      82
      2742
    5. Seuraava hallituspohja - Kokoomus, kepu, persut + KD

      Kokoomus saa ainakin 20% kannatuksen ensi vaaleissa, keskusta sanoisin noin 15%, persut todennäköisesti enemmän, ehkä 17
      Maailman menoa
      148
      2496
    6. Olenko mies sinun mielestä outo?

      Saat vastata rehellisesti.
      Ikävä
      70
      2139
    7. Outo ilmiö - vasemmistolaiset eivät kirjoita mitään kokoomuksesta

      joka sentään johtaa hallitusta, ja jonka talouspolitiikkaa noudatetaan. Nämä muutamat vasemmistolaiset jotka täällä aina
      Maailman menoa
      49
      2026
    8. Millasia unelmia sulla on?

      onko unelmia...?
      Ikävä
      71
      1868
    9. Miten usein toivot

      Tai olet toivonut että olisimme lähekkäin vai toivotko ollenkaan?
      Ikävä
      213
      1784
    10. Miksi et voi tutustua minuun irl?

      Vastaa yleisellä tasolla/ympäripyöreästi, jos pelkäät tunnistamisia.
      Ikävä
      187
      1389
    Aihe