Forum Webscript.Ru

Программирование => Perl => Тема начата: Yaroslav от 27 Декабря 2004, 00:01:47

Название: поиск
Отправлено: Yaroslav от 27 Декабря 2004, 00:01:47
можно это уместить в 1 строчку или лучше так?
if ($text =~ /^pr/) {}
elsif  ($text =~ /^to/) {}
else {}
Название: поиск
Отправлено: Green Kakadu от 27 Декабря 2004, 00:57:03
Цитировать
Yaroslav:
можно это уместить в 1 строчку или лучше так?

можно, пример:

my $str=\'yes\';
$str=~/^y/ ? print "yes" : ($str=~/^n/ ? print "no" : print "fuck");

только зачем? Понятнее она от этого не станет, удобства тоже особо не наблюдается, да и не намного укоротится
Название: поиск
Отправлено: Wyclef от 27 Декабря 2004, 13:55:17
Yaroslav
$text =~ /^(pr|to)/ ? &$1() : &false();
Название: поиск
Отправлено: Yaroslav от 27 Декабря 2004, 14:22:50
Wyclef
NeoNox
спасибо
Название: поиск
Отправлено: Green Kakadu от 27 Декабря 2004, 15:06:03
Цитировать
Wyclef:
$text =~ /^(pr|to)/ ? &$1() : &false();

c use strict
такое не покатит, поэтому немного видоизменяем:

my %subs=(\'pr\'=>\\&pr,
      \'to\'=>\\&to);
$text =~ /^(pr|to)/ ? $subs{$1} : &false();
Название: поиск
Отправлено: Yaroslav от 27 Декабря 2004, 15:18:24
Green Kakadu
так то еще лучше?

if ($login =~ /^(pr|to)/) {}
else {}
Название: поиск
Отправлено: Green Kakadu от 27 Декабря 2004, 22:01:58
Цитировать
Yaroslav:
if ($login =~ /^(pr|to)/) {}

в первом посте ты показал, что для варианов pr и to у тебя происходят различные действия