Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     25 Jun 2002  13:16:54
 To : Eugene Bodin
 Subject : Re: Вспоминая Brainbench...
 -------------------------------------------------------------------------------- 
 
 Eugene Bodin wrote:
 
 > Hello All,
 > 
 > Посмотрел я на эхотажный экзамен по сабжу -
 > там по-прежнему остались вопросы с несколькими одинаково правильными
 > или всеми неправильными ответами (IMHO).
 > (Или вопросы, ответы на которые я не знаю. :-) )
 
 Больше всего меня перло в свое время от вопроса в экзамене по C,
 та же, на брейнбенче. В переводе вопрос звучал примерно так:
 
 int main (int argc, char **argv) {
      int *p;
      *p = 6254238;
      printf ("%i\n", *p);
      return 0;
 }
 
 что произойдет при выполнении данной программы:
 1. Программа зависнет.
 2. Программа аварийно завершится.
 3. Программа отработает, но выдаст неправильный результат.
 4. Программа отработает и выдаст правильный результат.
 
 :-)))
 
 > 
 > Я глючу или это действительно так?
 > ("Совсем неправильные" варианты ответов я убрал для экономии места.)
 > 
 > ---1---
 > Which one of the following statements adds the directory ../lib to the
 > library include path?
 > 
 > @INC = (@INC, "../lib");
 > use lib qw(../lib);
 > 
 > Добавляют-то оба оператора, только второй ещё и удаляет дупы
 > (и потому рекомендуется к использованию), зато первый делает
 > _в точности_ то, о чём спрашивается...
 
 Верно. Кроме того второй делает это на этапе компиляции, но ведь
 никто не говорит, что первый вариант HЕ в блоке BEGIN
 
 > ---2---
 > #! /usr/local/bin/perl -Tw
 > sub foo {
 >     my $data = shift;
 >     if ($data =~ /^([-\w.]*)$/) {
 >         return $1;
 >         }
 >     return $data;
 >     }
 > my $line = <STDIN>;
 > $line = foo($line);
 > 
 > When would code similar to the above code be used in a perl program?
 > 
 > When running setuid perl scripts that must securely use user-supplied data
 > When preparing a function that will eventually check data for specific
 > criteria
 > 
 > С одной стороны, -T намекает на первый вариант (taint);
 > с другой стороны, foo() всегда возвращает свой первый аргумент
 > (совпавший или нет).
 
 Это почему? Когда введеная строка удовлетворяет регекспу, то возвращается
 не $data а $1, который untainted. Другое дело, что в нормальных условиях
 $line будет содержать еще и символ конца строки, и регексп не сматчится.
 Хотя конечно может кто-то вдувает на вход строку терминированную EOF-ом...
 
 > ---3---
 > Which one of the following prints the current time as a human-readable
 > string?
 > 
 > Choice 1
 >   use POSIX;
 >   POSIX::localtime(time());
 > Choice 3
 >   gmtime(time());
 > Choice 4
 >   use POSIX;
 >   POSIX::ctime(time());
 > Choice 5
 >   localtime(time());
 > 
 > Строго говоря, ни один из вариантов ничего не печатает. :-)
 > А если использовать "print scalar( ... );" ,
 > все печатают строку.
 > Разве что имелось в виду при использовании "print ( ... );" ?
 > (Тогда остаётся "POSIX::ctime(time());" )
 
 Hда... "вот ур-р-роды!" (С) Брат-2
 
 > 
 > ---4---
 > 
 > Which one of the following statements defines a declaration?
 > 
 > Choice 1
 > A declaration is the allocation of only properties to a variable.
 > Choice 2
 > A declaration is the creation of a new namespace.
 > Choice 3
 > A declaration is the creation of a new variable.
 > Choice 4
 > A declaration is the allocation of only a name to a variable.
 > Choice 5
 > A declaration is the allocation of a name and properties to a variable.
 > 
 > Тут я не совсем понял, что называется свойствами переменной
 > (и как переменная может иметь свойства не имея имени).
 
 Это не perl-specific вопрос, а вопрос теоретического плана на понимание
 разницы между declaration и definition. Подразумевался ответ 5. В Perl
 с обявлением и описанием некоторая путаница, но суть не меняется.
 
 Андрей
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Вспоминая Brainbench...   Eugene Bodin   24 Jun 2002 22:13:27 
 Re: Вспоминая Brainbench...   Dmitry Koteroff   25 Jun 2002 01:20:10 
 Re: Вспоминая Brainbench...   Andrey Sapozhnikov   25 Jun 2002 13:16:54 
Архивное /ru.perl/5284582d92c0.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional