Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объясните трочку, Что мы сортируем? 
:(
    Опции темы
Sadok
Дата 30.6.2005, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



Код

#!/usr/bin/perl
use strict;
use warnings;
my @news = qw( news1.htm news10.htm news2.htm news3.htm );
print map { "$_\n" } sort { ($a=~/(\d+)/)[0] <=> ($b=~/(\d+)/)[0] } @news;

Скрипт выводит имена из массива по возрастанию их номеров, т.е.:

news1.htm
news2.htm
news3.htm
news10.htm


Вот не могу понять, что мы сортируем в последней строке. Понятно, что "выкусываем" цифру из имени файла. А зачем и почему [0] используется? Причем с [1] ругается, а с отключенным варнингом - не работает. Это какой-то "мнимый" массив что ли?
PM   Вверх
kostofffan
Дата 30.6.2005, 13:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Прикол в том, что m// возвращает массив из переменных $1, $2, $3 и т.д. Эти переменные в свою очередь будут иметь значения, которые ты в регэкспе заключал в скобки. Т.е. к примеру:
Код

my $_ = '123 avc';
/(\d+)(\s)(\w+)/;

В этом случае:
Код

$1 = '123';
$2 = ' ';
$3 = 'avc';


А если записать так:
Код

my $_ = '123 avc';
my $a = (/(\d+)(\s)(\w+)/)[0];


То переменная $a будет содержать значение '123'.
  Вверх
Sadok
Дата 1.7.2005, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



kostofffan
Ага. Точно. Про массив как-то вылетело из головы, думал что $n возвращаютмя "по-отдельности". Спасибо.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0654 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.