Program co vypisuje sebe

Roztocil Bohuslav Bohuslav.Roztocil na tconsult.cz
Čtvrtek Duben 22 09:36:58 MEST 1999


> Klid. Je to jenom takovy zertik, ktery nedela nic rozumneho, pouze
> vytiskne svuj vlastni zdrojovy kod (caste treba na cviceni z pascalu
> nebo c). Zadny pristup na disk, vsechno je ulozeno ve zdrojaku
> programu. Je to proste takovy logicky hlavolam a clovek si musi davat
> pozor, aby se nezarekurzil :-)
>
> David Rohleder
davro na ics.muni.cz

Rozumím-li tomu správně, program nemá vypsat svůj zdroják, ale výstup
programu má být shodný se zdrojákem programu. Jsou-li později v programu
provedeny nějaké úpravy, které namají na mysli předchozí požadavek,
nemusí
již být předchozí požadavek splněn. Jest tak?

Třeba tento program vyhovuje Vašemu zadání?

   #!/usr/bin/perl -w
   use strict;
   
   my $prg = <<'.';
   #!/usr/bin/perl -w
   use strict;
   
   my $prg = <<'.';
   x
   
   $prg =~ s/^x$/$prg./m;
   print "$prg\n";
   .
   
   $prg =~ s/^x$/$prg./m;
   print "$prg\n";


Pro ilustraci mé připomínky: pokud teď změním 2. řádek na

  use strict;   # aby se hlásily nedeklarované proměnné

nebude změněný program vyhovovat zadání. Ale původní ano.

Bob



Daląí informace o konferenci Perl