#!/usr/bin/perl require 'common.pl'; use CGI qw/:standard/; use locale; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { local($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $in{$name} = $value; } @cookieArray=split ("; ",$ENV{'HTTP_COOKIE'}); my $cookieName;my $cookieValue; %cookieHash; foreach (@cookieArray){ ($cookieName,$cookieValue)=split("=",$_); $cookieHash{$cookieName}=$cookieValue; } if ($ENV{'QUERY_STRING'} ne '') { @qstr = split (/=/,$ENV{'QUERY_STRING'}); $command = $qstr[0]; $value = $qstr[1]; $value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g; if ($command eq "error"){$error=1;&displayDefault;} else {&displayDefault;} } else{ if ($in{'input'}) {&parsecommand;} else {&displayDefault;} } sub displayDefault(){ print "Content-type: text/html\n\n"; print <<"EOF"; \n \nГостиная Александра Яковлева\n EOF if ($cookieHash{'light'}){print '';} else {print '';} print "\nВы находитесь в гостиной.Здесь очень "; if ($cookieHash{'light'}){print "светло.";} else {print "темно.";} print <<"EOF";

Слева от вас стоит большой красный шкаф с книгами.
Стена по левую сторону от шкафа украшена фотографиями автора страницы и его друзей.
По правую сторону от шкафа стоит письменный стол,на котором разбросаны записки. Рядом со столом прибиты две полки.На верхней поставлено в ряд несколько дискет.На стене виден выключатель.

EOF &lower_shelf(); if ($error){print "

Команда не распознана.

";$error=0;} print "
\n"; print "\n"; print '> '; print "\n"; } sub lower_shelf{#описание нижней полки if ($cookieHash{'leg'} && $cookieHash{'ball'} && $cookieHash{'match'}){print "На нижней ничего не лежит.";} elsif ($cookieHash{'leg'} && $cookieHash{'ball'}){print "На нижней лежит одинокая спичка.";} elsif ($cookieHash{'match'} && $cookieHash{'ball'}){print "На нижней лежит одинокая чья-то синяя конечность.";} elsif ($cookieHash{'leg'} && $cookieHash{'match'}){print "На нижней лежит одинокий чёрный шарик.";} elsif ($cookieHash{'leg'}){print "На нижней лежат чёрный блестящий шарик и спичка.";} elsif ($cookieHash{'ball'}){print "На нижней лежат какая-то синяя конечность и спичка.";} elsif ($cookieHash{'match'}){print "На нижней лежат какая-то синяя конечность и чёрный блестящий шарик с окошечком.";} else {print"На нижней лежит какая-то конечность,круглый чёрный шар с отверстием и спичка.";} }