Полная интроспекция

Здесь вы может созерцать программы на перле, которые при запуске выдают на экран весь свой исходный код, не воспользовавшись чтением/записью в файл. Ждем ваших сабмитов на perlclub@hackerdom.ru



cman.rus
sub u{$_="q{$_[0]},u \$a"};print$a=q{sub u{$_="q{$_[0]},u \$a"};print$a=},u $a


bezimeni
$a[1]='1234567890'; 
$a[2]='print'; 
$a[3]='"'; 
$a[4]='$'; 
$a[5]="'"; 
$a[6]='a'; 
$a[7]='['; 
$a[8]=']'; 
$a[9]=';'; 
$a[10]='\$'; 
$a[11]='\n'; 
$a[12]=' '; 
$a[13]='\"'; 
$a[14]='print "$a[2]$a[12]$a[3]$a[10]$a[6]$a[7]1$a[8]=$a[5]$a[4]$a[6]$a[7]1$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]2$a[8]=$a[5]$a[4]$a[6]$a[7]2$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]3$a[8]=$a[5]$a[4]$a[6]$a[7]3$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]4$a[8]=$a[5]$a[4]$a[6]$a[7]4$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]5$a[8]=$a[13]$a[4]$a[6]$a[7]5$a[8]$a[13]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]6$a[8]=$a[5]$a[4]$a[6]$a[7]6$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]7$a[8]=$a[5]$a[4]$a[6]$a[7]7$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]8$a[8]=$a[5]$a[4]$a[6]$a[7]8$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]9$a[8]=$a[5]$a[4]$a[6]$a[7]9$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]10$a[8]=$a[5]$a[4]$a[6]$a[7]10$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]11$a[8]=$a[5]$a[4]$a[6]$a[7]11$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]12$a[8]=$a[5]$a[4]$a[6]$a[7]12$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]13$a[8]=$a[5]$a[4]$a[6]$a[7]13$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]14$a[8]=$a[5]$a[4]$a[6]$a[7]14$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]15$a[8]=$a[5]$a[4]$a[6]$a[7]15$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]16$a[8]=$a[5]$a[4]$a[6]$a[7]16$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]17$a[8]=$a[5]$a[4]$a[6]$a[7]17$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]18$a[8]=$a[5]$a[4]$a[6]$a[7]18$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]19$a[8]=$a[5]$a[4]$a[6]$a[7]19$a[8]$a[5]$a[9]$a[12]$a[11]$a[3]$a[9]";'; 
$a[15]='print "\n";'; 
$a[16]='foreach $i (14..19)'; 
$a[17]='{'; 
$a[18]='   print "$a[$i]\n";'; 
$a[19]='}'; 
print "\$a[1]='$a[1]'; \n\$a[2]='$a[2]'; \n\$a[3]='$a[3]'; \n\$a[4]='$a[4]'; \n\$a[5]=\"$a[5]\"; \n\$a[6]='$a[6]'; \n\$a[7]='$a[7]'; \n\$a[8]='$a[8]'; \n\$a[9]='$a[9]'; \n\$a[10]='$a[10]'; \n\$a[11]='$a[11]'; \n\$a[12]='$a[12]'; \n\$a[13]='$a[13]'; \n\$a[14]='$a[14]'; \n\$a[15]='$a[15]'; \n\$a[16]='$a[16]'; \n\$a[17]='$a[17]'; \n\$a[18]='$a[18]'; \n\$a[19]='$a[19]'; \n";
print "$a[2]$a[12]$a[3]$a[10]$a[6]$a[7]1$a[8]=$a[5]$a[4]$a[6]$a[7]1$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]2$a[8]=$a[5]$a[4]$a[6]$a[7]2$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]3$a[8]=$a[5]$a[4]$a[6]$a[7]3$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]4$a[8]=$a[5]$a[4]$a[6]$a[7]4$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]5$a[8]=$a[13]$a[4]$a[6]$a[7]5$a[8]$a[13]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]6$a[8]=$a[5]$a[4]$a[6]$a[7]6$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]7$a[8]=$a[5]$a[4]$a[6]$a[7]7$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]8$a[8]=$a[5]$a[4]$a[6]$a[7]8$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]9$a[8]=$a[5]$a[4]$a[6]$a[7]9$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]10$a[8]=$a[5]$a[4]$a[6]$a[7]10$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]11$a[8]=$a[5]$a[4]$a[6]$a[7]11$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]12$a[8]=$a[5]$a[4]$a[6]$a[7]12$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]13$a[8]=$a[5]$a[4]$a[6]$a[7]13$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]14$a[8]=$a[5]$a[4]$a[6]$a[7]14$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]15$a[8]=$a[5]$a[4]$a[6]$a[7]15$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]16$a[8]=$a[5]$a[4]$a[6]$a[7]16$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]17$a[8]=$a[5]$a[4]$a[6]$a[7]17$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]18$a[8]=$a[5]$a[4]$a[6]$a[7]18$a[8]$a[5]$a[9]$a[12]$a[11]$a[10]$a[6]$a[7]19$a[8]=$a[5]$a[4]$a[6]$a[7]19$a[8]$a[5]$a[9]$a[12]$a[11]$a[3]$a[9]";
print "\n";
foreach $i (14..19)
{
   print "$a[$i]\n";
}


dkosolobov
printf$a=q{printf$a=q{%s},$a},$a


Ещё пара примеров применения известной техники написания квинов.

cdecl
$q=q[print'$q=q[',$q,'];',$q];print'$q=q[',$q,'];',$q

$_=q{;s/(;.*t)/\$_=q{$1}$1/;print};s/(;.*t)/\$_=q{$1}$1/;print


v3n0m (КГАСУ, Казань)
print <DATA>x2 __DATA__
print <DATA>x2 __DATA__


Venl2OCK
eval($a=q{print"eval(\$a=q{$a})"})


Павел Агеев
$A='"';$B="'";$F=';print
"\$A=".$B.$A.$B.";\$B=".$A.$B.$A.";\$F=".$B.$F.$B.$F';print
"\$A=".$B.$A.$B.";\$B=".$A.$B.$A.";\$F=".$B.$F.$B.$