This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package AA; | |
sub func { print "AA\n" } | |
package BB; | |
use parent 'AA'; | |
sub func { print "BB\n"; shift->SUPER::func(@_); } | |
package CC; | |
use parent 'AA' | |
sub func { print "CC\n"; shift->SUPER::func(@_); } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Что произойдет с памятью в этом примере и почему? Как исправить положение? | |
# | |
while (1) { | |
my $a = {}; | |
$a->{func} = sub { | |
$a->{cnt}++; | |
}; | |
} | |
# Здесь счётчик ссылок на $a сохраняется в контексте func, поэтому |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
# Напишите на Perl примитивный базовый класс MyApp::Accessor для | |
# использования в качестве базового класса для генерации ацессоров | |
# (методов которые сохраняют и отдают свойство объекта). Ацессоры должны | |
# работать настолько быстро, насколько это возможно в принципе. Какими | |
# технологиями/модулями, по вашему, лучше всего пользоваться в реальной | |
# разработке для создания ацессоров? | |
# P.S. Accessor – это примитивная функция, которая служит для доступа к | |
# свойству объекта извне. Т.е. $obj->property() – возвращает значение, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
use Modern::Perl; | |
use Carp qw/confess/; | |
use constant ARRAY_SIZE => 1_000_000; | |
use constant ITER_N => 1_000; | |
# ------------------------------------------------------------------------------ | |
# Поиск индекса ближайшего к заданному элемента отсортированного массива. | |
# Возвращает индекс в массиве и количество шагов, которое понадобилось |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
# Дан хеш %h. Необходимо удалить из него лишние пары, у которых | |
# значения повторяются (т.е. только 1 такую пару оставить) наиболее | |
# эффективным методом. В хеше может быть миллион пар, так что | |
# приоритет – процессорное время. | |
use Modern::Perl; | |
# Ахтунг! Во всех вариантах не учитывается порядок следования ключей. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Чем отличаются между собой переменные, объявленные с помощью my, our,local, state? | |
# Что и почему напечатается, если в качестве XXX подставлять вышеуказанные 4 типа объявления переменных? | |
# | |
func() for 1..10; | |
sub func { | |
my $var; | |
$var++; | |
say "A=$var"; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define _GNU_SOURCE | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <ctype.h> | |
#include <string.h> | |
/* ----------------------------------------------------------------------------- | |
* Написать функцию, которая меняет первые буквы слов на заглавные и сохраняет | |
* их в отдельную строку. | |
* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
# ----------------------------------------------------------------------------- | |
use Modern::Perl; | |
use AnyEvent; | |
use AnyEvent::HTTP; | |
use Const::Fast; | |
# ----------------------------------------------------------------------------- | |
# Задача: распараллелить N действий так, чтобы в T секунд совершалось не больше |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <ctype.h> | |
#include <string.h> | |
#include <limits.h> | |
/* ---------------------------------------------------------------------------- | |
* Напишите программу, которая считывает со стандартного ввода строку и выводит | |
* на стандартный вывод значение арифметического выражения, содержащегося в | |
* этой строке. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
# ------------------------------------------------------------------------------ | |
# Написать скрипт, который принимает в аргументах url с сайтом и делает | |
# рекурсивный обход всех страниц этого сайта (как указанного в аргументе, | |
# так и его поддомены, если они будут встречаться) и выводит их в виде дерева | |
# на stdout. | |
# | |
# Необходимо использовать Mojo::IOLoop, Mojo::UserAgent и Mojo::DOM для решения. | |
# |