Архив метки: код

qw — ‘Quoted Words’ или ‘Quoted by Whitespace’

my @data = qw /Mojolicious Catalyst Dancer/;

Perl интерпретирует данные в выражении qw как строки в апострофах, т.е. там нельзя использовать интерполяцию переменных и символы типа ‘\n’

qw удалет пропуски (пробелы, табуляции, символы новой строки), а все остальное преобразует в список.

Для включения в список символа ограничителя — необходимо экранировать его с помощью ‘\’

  my @data = qw !Google Yahoo \! Rambler!;

Отрицательные индексы в массивах Perl

В Perl есть прекрасная возможность отсчитывать индексы не с начала массива, а с конца.

Пример:

   my @languages = ('Perl','Python','Php');
   say $languages[-3];
   #тоже самое что и $languages[0] - выведет "Perl"

Для обращения к последнему элементу массива вместо конструкции:

$#languages;
#конструкция $#имя_массива - вернет последний индекс массива

Можно использовать вот такую:

$languages[-1];

Вот нашел!

Нашел вот такой свой комментарий в файле с JavaScript-кодом =)

Больше 3-х лет прошло =)

Вы бы видели код!!! Ужос!!! Про jQuery я тогда и не знал =)

// JavaScript Document
// скрипт для проверки полей формы
//my function 8.06.2007

//================================================

Yii как я форматирую код

При разработке на Yii очень часто приходится иметь дело с формами и с моделями.
Формы (потомки CFormModel)  и модели (CActiveRecord), как правило, принимают параметры и что-то с ними делают =). При этом часто можно видеть записи вида:

$model = new Model();
$model->attr_1 = 'attr_1';
$model->attr_2 = 'attr_2';
...................................

Такая «кишка» присваиваний выглядит в коде не очень здорово.

Вместо этого можно и нужно использовать метод setAttributes.
Если еще и отформатировать код как-нибудь вот так:

$registration = new Registration();
$registration->setAttributes(array(
     'email'    =>  $email,
     'nickName' => $login,
     'password' => $pass,
));

if($registration->save()){
..................................
}

Жизнь становится прекраснее!

Аналогично форматировать  можно и код  выборки данных, используя ORM Yii:

Question::model()->answered()->with('user.profile','fromUser')->findAll(array(
   'condition' => 't.userId = :userId',
   'limit'          => self::STREAM_PER_PAGE,
   'offset'        => $already,
   'params'      => array('userId' => $user),
   'order'         => 't.creationDate DESC'
));

Пусть Ваш код будет приятным для чтения и просмотра!