Архив за год: 2010

Валидируем UTF-ые строки в Yii

Начиная с версии 1.1.1 CStringValidator может принимать параметр «encoding». Выдержка из API:

the encoding of the string value to be validated (e.g. ‘UTF-8’). Setting this property requires you to enable mbstring PHP extension. The value of this property will be used as the 2nd parameter of the mb_strlen() function. Defaults to false, which means the strlen() function will be used for calculating the length of the string.

Используйте его при валидации текстовых строк на русском языке.

Пример (часть метода rules модели):

array(‘question, answer’, ‘length’, ‘max’=>255,’encoding’ => ‘utf-8’),

И не забудьте прочитать статью о том, как включить поддержку Юникод в Yii

Оператор повторения строк в Perl

Оператор повторения строк в Perl — x.

Пример:

$str = ‘xoma’;
say $str x 3; #xomaxomaxoma

Пробел между переменной-строкой и знаком «x» обязателен.
Иначе возникнет неоднозначность и программа работать не будет.

Изучаем Perl. Упражнения к главе 2.

Ответы на упражнения к главе 2.

1

#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;

use constant PI => 3.141592654;

my $radius = 12.5;
say 2 * PI * $radius;

2

#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;

use constant PI => 3.141592654;

say ‘Input radius:’;

chomp(my $radius = <STDIN>);

say 2 * PI * $radius;

3

#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;

use constant PI => 3.141592654;

say ‘Input radius:’;

chomp(my $radius = <STDIN>);

my $circ = 2 * PI * $radius;

if($radius < 0){
$circ = 0;
}

say $circ;

4

#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;

say ‘input one number:’;

chomp(my $one = <STDIN>);

say ‘input second number:’;

chomp(my $second = <STDIN>);

my $result = $one * $second;

say «$one * $second = $result»;

5

#!/usr/bin/env perl

use strict;
use warnings;
use 5.010;

say ‘input one string:’;

chomp(my $string = <STDIN>);

say ‘input repeat number:’;

chomp(my $number = <STDIN>);

my $result = $string x $number;

say «result is $result»;

Особо запомнилась конструкция вида:

chomp(my $radius = <STDIN>);